diff options
author | Marco Sirabella <marco@sirabella.org> | 2021-05-08 09:45:08 -0400 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2022-07-08 19:44:08 -0700 |
commit | 71c6d4d94a5bd5aac3fb090e2e306c278a83b954 (patch) | |
tree | 338f34e1a2eb2aec69d611e2ac884feee0f73bc9 | |
parent | Add -f/--forced-masked to equery(1) (diff) | |
download | gentoolkit-71c6d4d94a5bd5aac3fb090e2e306c278a83b954.tar.gz gentoolkit-71c6d4d94a5bd5aac3fb090e2e306c278a83b954.tar.bz2 gentoolkit-71c6d4d94a5bd5aac3fb090e2e306c278a83b954.zip |
metadata.py: Don't fail on unmatched package
Added a warning hook too to reuse the GentoolkitNoMatches machinery
This allows users to do something like:
equery list @selected | xargs equery metadata
successfuly, even if there are some selected packages that don't exist
anymore.
Signed-off-by: Marco Sirabella <marco@sirabella.org>
Signed-off-by: Brian Dolbec <dolsen@gentoo.org>
-rwxr-xr-x | bin/equery | 10 | ||||
-rw-r--r-- | pym/gentoolkit/equery/meta.py | 4 |
2 files changed, 13 insertions, 1 deletions
@@ -29,6 +29,16 @@ except KeyboardInterrupt: sys.exit(1) from gentoolkit import equery, errors +import warnings + + +def formatwarning(message, category, filename, llineno, line=None): + from gentoolkit import pprinter as pp + return pp.warn(str(message)) + + +if '--debug' not in sys.argv and not bool(os.getenv('DEBUG', False)): + warnings.formatwarning = formatwarning try: equery.main(sys.argv) diff --git a/pym/gentoolkit/equery/meta.py b/pym/gentoolkit/equery/meta.py index 4cf4bc6..2e8dc36 100644 --- a/pym/gentoolkit/equery/meta.py +++ b/pym/gentoolkit/equery/meta.py @@ -13,6 +13,7 @@ __docformat__ = "epytext" import re import os import sys +import warnings from getopt import gnu_getopt, GetoptError import gentoolkit.pprinter as pp @@ -524,7 +525,8 @@ def main(input_args): best_match = query.find_best() matches = query.find(include_masked=True) if best_match is None or not matches: - raise errors.GentoolkitNoMatches(query) + warnings.warn(errors.GentoolkitNoMatches(query)) + continue if best_match.metadata is None: print( |