aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Sirabella <marco@sirabella.org>2021-05-08 09:45:08 -0400
committerBrian Dolbec <dolsen@gentoo.org>2022-07-08 19:44:08 -0700
commit71c6d4d94a5bd5aac3fb090e2e306c278a83b954 (patch)
tree338f34e1a2eb2aec69d611e2ac884feee0f73bc9
parentAdd -f/--forced-masked to equery(1) (diff)
downloadgentoolkit-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-xbin/equery10
-rw-r--r--pym/gentoolkit/equery/meta.py4
2 files changed, 13 insertions, 1 deletions
diff --git a/bin/equery b/bin/equery
index 0e52294..3b3e850 100755
--- a/bin/equery
+++ b/bin/equery
@@ -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(