diff --git a/pisi/api.py b/pisi/api.py index 151ed2c9..55afaad5 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -494,11 +494,17 @@ def rebuild_db(files=False): ctx.dbenv.dbremove(file=fn, flags=bsddb3.db.DB_AUTO_COMMIT) def reload_packages(files, txn): - for package_fn in os.listdir( pisi.util.join_path( ctx.config.lib_dir(), - 'package' ) ): + packages = os.listdir(pisi.util.join_path(ctx.config.lib_dir(), 'package')) + progress = ctx.ui.Progress(len(packages)) + processed = 0 + for package_fn in packages: if not package_fn == "scripts": ctx.ui.debug('Resurrecting %s' % package_fn) pisi.api.resurrect_package(package_fn, files, txn) + processed += 1 + ctx.ui.display_progress(operation = "rebuilding-db", + percent = progress.update(processed), + info = _("Rebuilding package database")) def reload_indices(txn): index_dir = ctx.config.index_dir() diff --git a/pisi/cli/__init__.py b/pisi/cli/__init__.py index 3b40fc39..296543f5 100644 --- a/pisi/cli/__init__.py +++ b/pisi/cli/__init__.py @@ -126,7 +126,7 @@ class CLI(UI): def display_progress(self, operation, percent, info="", **ka): """ display progress of any operation """ - if operation == "removing": + if operation in ["removing", "rebuilding-db"]: return elif operation == "fetching": totalsize = '%.1f %s' % pisi.util.human_readable_size(ka['total_size'])