Catch a ValueError thrown from cpv_expand and use it print an error message (to stder...
authorZac Medico <zmedico@gentoo.org>
Fri, 19 May 2006 00:39:05 +0000 (00:39 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 19 May 2006 00:39:05 +0000 (00:39 -0000)
svn path=/main/trunk/; revision=3376

bin/portageq

index bbf001901a86390e34a2da2462467be4fe070fff..7e75ca2a3c976f0e41448721bad00f4befa2b87c 100755 (executable)
@@ -136,7 +136,14 @@ def match(argv):
                sys.exit(2)
        try:
                print string.join(portage.db[argv[0]]["vartree"].dbapi.match(argv[1]),"\n")
-       except KeyError:
+       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)
 match.uses_root = True