From 6c4ad762f2975e639296b41ab12626ebe6ce6c70 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Tue, 10 Feb 2009 12:30:23 +0000 Subject: [PATCH] Sane error message for pisi history when package not found in any repositories. BUG:FIXED:9083 --- pisi/operations/history.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pisi/operations/history.py b/pisi/operations/history.py index 39a5b352..c5164d78 100644 --- a/pisi/operations/history.py +++ b/pisi/operations/history.py @@ -14,6 +14,7 @@ import gettext __trans = gettext.translation("pisi", fallback=True) _ = __trans.ugettext +import pisi import pisi.context as ctx import pisi.util import pisi.db @@ -22,6 +23,9 @@ import pisi.fetcher installdb = pisi.db.installdb.InstallDB() historydb = pisi.db.historydb.HistoryDB() +class PackageNotFound(pisi.Error): + pass + def __pkg_already_installed(name, pkginfo): if not installdb.has_package(name): return False @@ -66,6 +70,9 @@ def __getpackageurl(package): if pkg in packagedb.get_obsoletes(repo): reponame = repo + if not reponame: + raise PackageNotFound + repourl = repodb.get_repo_url(reponame) ctx.ui.info(_("Package %s found in repository %s") % (pkg, reponame)) @@ -73,7 +80,13 @@ def __getpackageurl(package): return os.path.join(os.path.dirname(repourl), package) def fetch_remote_file(package, errors): - uri = pisi.file.File.make_uri(__getpackageurl(package)) + try: + uri = pisi.file.File.make_uri(__getpackageurl(package)) + except PackageNotFound: + errors.append(package) + ctx.ui.info(pisi.util.colorize(_("%s could not be found") % (package), "red")) + return False + dest = ctx.config.cached_packages_dir() filepath = os.path.join(dest, uri.filename()) if not os.path.exists(filepath):