From 4c2b32da48ddab172db68f90e1408f23026cd345 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 5 Oct 2007 04:20:56 +0000 Subject: Bug #194764 - All the match* functions can raise a ValueError if cpv_expand() receives an ambiguous atom. Therefore, move the ValueError handling code out of match() and use it to handle all such errors when appropriate. (trunk r7944) svn path=/main/branches/2.1.2/; revision=7945 --- bin/portageq | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'bin/portageq') diff --git a/bin/portageq b/bin/portageq index 6147e5627..4b9ad9473 100755 --- a/bin/portageq +++ b/bin/portageq @@ -184,15 +184,6 @@ def match(argv): sys.exit(2) try: print "\n".join(portage.db[argv[0]]["vartree"].dbapi.match(argv[1])) - except ValueError, e: - # Multiple matches thrown from cpv_expand - pkgs = e.args[0] - # An error has occurred so we writemsg to stderr and exit nonzero. - portage.writemsg("The following packages available:\n", noiselevel=-1) - for pkg in pkgs: - portage.writemsg("* %s\n" % pkg, noiselevel=-1) - portage.writemsg("\nPlease use a more specific atom.\n", noiselevel=-1) - sys.exit(1) except KeyError, e: portage.writemsg("%s\n" % str(e), noiselevel=-1) sys.exit(1) @@ -350,6 +341,19 @@ def main(): except portage_exception.PermissionDenied, e: sys.stderr.write("Permission denied: '%s'\n" % str(e)) sys.exit(e.errno) + except ValueError, e: + if not e.args or \ + not hasattr(e.args[0], "__len__") or \ + len(e.args[0]) < 2: + raise + # Multiple matches thrown from cpv_expand + pkgs = e.args[0] + # An error has occurred so we writemsg to stderr and exit nonzero. + portage.writemsg("The following packages available:\n", noiselevel=-1) + for pkg in pkgs: + portage.writemsg("* %s\n" % pkg, noiselevel=-1) + portage.writemsg("\nPlease use a more specific atom.\n", noiselevel=-1) + sys.exit(1) main() -- cgit v1.2.3-1-g7c22