From 5ff80781575f77cadcb035728372362fa7759c61 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Mon, 17 Apr 2006 07:21:00 +0000 Subject: [PATCH] =?UTF-8?q?rebuild-db=20sonras=C4=B1=20depolarda=20gelsin.?= =?UTF-8?q?=20(#2347)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pisi/api.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/pisi/api.py b/pisi/api.py index 3c0c47e4..77ff5803 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -347,6 +347,21 @@ def update_repo(repo, force=False): else: raise Error(_('No repository named %s found.') % repo) +def rebuild_repo(repo): + ctx.ui.info(_('* Rebuilding \'%s\' named repo... ') % repo, noln=True) + + index = Index() + if ctx.repodb.has_repo(repo): + repouri = ctx.repodb.get_repo(repo).indexuri.get_uri() + indexname = os.path.basename(repouri) + repouri = pisi.util.join_path(ctx.config.lib_dir(), 'index', repo, indexname) + index.read_uri(repouri, repo, force = True) + else: + raise Error(_('No repository named %s found.') % repo) + + ctx.txn_proc(lambda txn : index.update_db(repo, txn=txn)) + ctx.ui.info(_('OK.')) + def delete_cache(): util.clean_dir(ctx.config.packages_dir()) util.clean_dir(ctx.config.archives_dir()) @@ -375,13 +390,21 @@ def rebuild_db(files=False): #os.unlink(fn) ctx.dbenv.close() - def reload(files, txn): + def reload_packages(files, txn): for package_fn in os.listdir( pisi.util.join_path( ctx.config.lib_dir(), 'package' ) ): if not package_fn == "scripts": ctx.ui.debug('Resurrecting %s' % package_fn) pisi.api.resurrect_package(package_fn, files, txn) + def reload_indexes(txn): + for repo in os.listdir( pisi.util.join_path( ctx.config.lib_dir(), + 'index' ) ): + indexuri = pisi.util.join_path(ctx.config.lib_dir(), 'index', repo, 'uri') + indexuri = open(indexuri, 'r').readline() + pisi.api.add_repo(repo, indexuri) + pisi.api.rebuild_repo(repo) + # check db schema versions try: pisi.lockeddbshelve.check_dbversion('filesdbversion', pisi.__filesdbversion__, write=False) @@ -399,4 +422,5 @@ def rebuild_db(files=False): # construct new database version init(database=True, options=options, ui=ui, comar=comar) #ctx.txn_proc(reload) - reload(files, None) + reload_packages(files, None) + reload_indexes(None)