def rebuild_repo(repo): ctx.ui.info(_('* Rebuilding \'%s\' named repo... ') % repo) if ctx.repodb.has_repo(repo): repouri = pisi.uri.URI(ctx.repodb.get_repo(repo).indexuri.get_uri()) indexname = repouri.filename() index = pisi.index.Index() indexpath = pisi.util.join_path(ctx.config.index_dir(), repo, indexname) tmpdir = os.path.join(ctx.config.tmp_dir(), 'index') pisi.util.clean_dir(tmpdir) pisi.util.check_dir(tmpdir) try: index.read_uri(indexpath, tmpdir, force=True) # don't look for sha1sum there except IOError, e: ctx.ui.warning(_("Input/Output error while reading %s: %s") % (indexpath, unicode(e))) return ctx.txn_proc(lambda txn : index.update_db(repo, txn=txn))
try: index.read_uri_of_repo(repouri, repo) except pisi.file.AlreadyHaveException, e: ctx.ui.info(_('No updates available for repository %s.') % repo) if force: ctx.ui.info(_('Updating database at any rate as requested')) index.read_uri_of_repo(repouri, repo, force = force) else: return try: index.check_signature(repouri, repo) except pisi.file.NoSignatureFound, e: ctx.ui.warning(e) ctx.txn_proc(lambda txn : index.update_db(repo, txn=txn)) ctx.ui.info(_('* Package database updated.')) else: raise Error(_('No repository named %s found.') % repo) def delete_cache(): pisi.util.clean_dir(ctx.config.packages_dir()) pisi.util.clean_dir(ctx.config.archives_dir()) pisi.util.clean_dir(ctx.config.tmp_dir()) def rebuild_repo(repo): ctx.ui.info(_('* Rebuilding \'%s\' named repo... ') % repo) if ctx.repodb.has_repo(repo): repouri = pisi.uri.URI(ctx.repodb.get_repo(repo).indexuri.get_uri()) indexname = repouri.filename()