def init(path, config_file=Config.CONFIGFILE): ''' Needs the path to repo, or the repo name if specified in the config file ''' try: Config.init(path, config_file) LocalRepo._repo = Repo(Config.get('path', path)) Log.init(LocalRepo._repo.path) BuildLog.init(LocalRepo._repo.path) PkgbuildLog.init(LocalRepo._repo.path) except LocalRepoError as e: LocalRepo.error(e)
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 rebuild(names): ''' Rebuilds the specified packages ''' if not Config.get('pkgbuild', False): LocalRepo.error( _('Please specify \'pkgbuild\' in your config file!')) LocalRepo.add([PkgbuildLog.log_dir(name) for name in names], force=True)
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)
def test_pkgbuild_log_dir(self): PkgbuildLog.init(self.repo) self.assertEqual(join(self.pkgbuild, 'pkgname'), PkgbuildLog.log_dir('pkgname'))
def rebuild(names): ''' Rebuilds the specified packages ''' if not Config.get('pkgbuild', False): LocalRepo.error(_('Please specify \'pkgbuild\' in your config file!')) LocalRepo.add([PkgbuildLog.log_dir(name) for name in names], force=True)