From 1553ccc9d4f898ac3c78a6aa84ba88b9e0285ce0 Mon Sep 17 00:00:00 2001 From: Denis Romanchuk Date: Thu, 19 Nov 2015 09:16:17 +0200 Subject: [PATCH] Show keywords for all installed packages Handle the case when package is installed but ebuild doesn't exist on system anymore --- pym/gentoolkit/eshowkw/keywords_content.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pym/gentoolkit/eshowkw/keywords_content.py b/pym/gentoolkit/eshowkw/keywords_content.py index b6ad118..757b2b0 100644 --- a/pym/gentoolkit/eshowkw/keywords_content.py +++ b/pym/gentoolkit/eshowkw/keywords_content.py @@ -10,6 +10,8 @@ __all__ = ['keywords_content'] from gentoolkit.eshowkw.display_pretty import colorize_string from gentoolkit.eshowkw.display_pretty import align_string +from gentoolkit.query import Query +from gentoolkit.package import PackageFormatter class keywords_content: class RedundancyChecker: @@ -191,9 +193,16 @@ class keywords_content: mysplit = mycp.split('/') mypkgs = [] + q = Query(mycp) for oroot in pdb.porttrees: try: file_list = os.listdir(os.path.join(oroot, mycp)) + # in case package is installed but ebuild doesn't exist on system anymore + for installed_pkg in [PackageFormatter(x) for x in q.find_installed()]: + if 'I--' == installed_pkg.location: + keywords, slot, eapi = installed_pkg.pkg.environment(['KEYWORDS', 'SLOT', 'EAPI']) + repo_path = pdb.getRepositoryPath(installed_pkg.pkg.repo_name()) + mypkgs.append([str(installed_pkg.pkg), repo_path, slot, eapi, keywords]) except OSError: continue for x in file_list: -- 2.4.10