def _load_pkgbuild(name, path): ''' Stores the PKGBUILD dir or loads an existing PKGBUILD from the pkgbuild dir ''' if not path.startswith(PkgbuildLog.log_dir(name)): PkgbuildLog.store(name, path) return path try: tmpdir = join(mkdtemp(dir=Package.get_tmpdir()), name) copytree(path, tmpdir) return tmpdir except: raise BuildError(_('Could not load PKGBUILD into workspace: {0}').format(path))
def _process_pkgbuild(path): ''' Parses the PKGBUILD and stores or loads it in/from the pkgbuild dir ''' info = PkgbuildParser(path).parse() path = dirname(path) if not Config.get('pkgbuild', False): return path, info if not path.startswith(PkgbuildLog.log_dir(info['name'])): PkgbuildLog.store(info['name'], path) return path, info tmpdir = join(Package.get_tmpdir(), info['name']) PkgbuildLog.load(info['name'], tmpdir) return tmpdir, info
def test_store_and_load__pkgbuild(self): PkgbuildLog.init(self.repo) for pkg in ['pkg1', 'pkg2', 'pkg1']: tmpdir = mkdtemp(prefix='local-repo-test-pkgbuild-dir-') l, f = mkstemp(prefix='local-repo-test-pkgbuild-file-', dir=tmpdir) PkgbuildLog.store(pkg, tmpdir) rmtree(tmpdir) self.assertIs(True, isfile(join(self.pkgbuild, pkg, basename(f)))) tmpdir = mkdtemp(prefix='local-repo-test-pkgbuild-dir-') for pkg in ['pkg1', 'pkg2', 'pkg1']: PkgbuildLog.load(pkg, join(tmpdir, pkg)) self.assertIs(True, isdir(join(tmpdir, pkg))) rmtree(tmpdir)