diff options
| -rwxr-xr-x | bin/equery | 2 | ||||
| -rw-r--r-- | man/equery.1 | 5 | ||||
| -rw-r--r-- | pym/gentoolkit/equery/list_.py | 6 | ||||
| -rw-r--r-- | pym/gentoolkit/errors.py | 11 |
4 files changed, 19 insertions, 5 deletions
@@ -36,6 +36,8 @@ from gentoolkit import equery, errors try: equery.main() +except errors.GentoolkitNonZeroExit as err: + sys.exit(err.return_code) except errors.GentoolkitException as err: if '--debug' in sys.argv or bool(os.getenv('DEBUG', False)): raise diff --git a/man/equery.1 b/man/equery.1 index c912831..8538005 100644 --- a/man/equery.1 +++ b/man/equery.1 @@ -448,7 +448,10 @@ Slot: .br The fourth field, after the colon, is the package's slot. \fB0\fP is the default slot. To find all packages with multiple slots installed, use \fB\-\-duplicates\fP. .P -\fBNote:\fP Because it takes extra processing time to determine the location, mask status and slot, you can speed up output by passing the \fB\-\-quiet\fP global option to \fBequery\fP when you don't care about the extra information. +\fBNote:\fP Because it takes extra processing time to determine the location, mask status and slot, you can speed up output by passing the \fB\-\-quiet\fP global option to \fBequery\fP when you don't care about the extra information. + +\fBNote:\fP Additionally, when using \-\-quiet, if no matches are found, instead of printing an error, the equery list module will return with an exit value of 3. +>>>>>>> 61db505... Add gentoolkitNonZeroExit exception .P .I R "EXAMPLES" ":" diff --git a/pym/gentoolkit/equery/list_.py b/pym/gentoolkit/equery/list_.py index 8c4b871..92b3c1e 100644 --- a/pym/gentoolkit/equery/list_.py +++ b/pym/gentoolkit/equery/list_.py @@ -19,7 +19,7 @@ from getopt import gnu_getopt, GetoptError import gentoolkit import gentoolkit.pprinter as pp -import gentoolkit.errors as errors +from gentoolkit import errors from gentoolkit.equery import format_options, mod_usage, CONFIG from gentoolkit.helpers import get_installed_cpvs from gentoolkit.helpers import get_bintree_cpvs @@ -193,14 +193,14 @@ def main(input_args): print() # if we are in quiet mode, do not raise GentoolkitNoMatches exception - # TODO: Return a non-zero exit status + # instead we raise GentoolkitNonZeroExit to exit with an exit value of 3 try: matches = query.smart_find(**QUERY_OPTS) except errors.GentoolkitNoMatches: if CONFIG['verbose']: raise else: - continue + raise errors.GentoolkitNonZeroExit(3) # Find duplicate packages if QUERY_OPTS["duplicates"]: diff --git a/pym/gentoolkit/errors.py b/pym/gentoolkit/errors.py index 152f660..15fef24 100644 --- a/pym/gentoolkit/errors.py +++ b/pym/gentoolkit/errors.py @@ -16,7 +16,8 @@ __all__ = ( 'GentoolkitInvalidVersion', 'GentoolkitNoMatches', 'GentoolkitSetNotFound', - 'GentoolkitUnknownKeyword' + 'GentoolkitUnknownKeyword', + 'GentoolkitNonZeroExit' ) # ========== @@ -145,4 +146,12 @@ class GentoolkitUnknownKeyword(GentoolkitException): "'%s', KEYWORDS = '%s'\nUSE flags = '%s'" % (self.query, self.keywords, self.use)) + +class GentoolkitNonZeroExit(GentoolkitException): + """Used to signal, that a non-fatal, no warning error occurred. + The primary use case is for not returning any data.""" + def __init__(self, return_code=1, is_serious=False): + GentoolkitException.__init__(self, is_serious=is_serious) + self.return_code = return_code + # vim: set ts=4 sw=4 tw=79: |
