moved the 'ambigous package' check into gentoolkit.find_packages, so it returns all...
authorgenone <genone@gentoo.org>
Fri, 6 Feb 2004 23:10:19 +0000 (23:10 -0000)
committergenone <genone@gentoo.org>
Fri, 6 Feb 2004 23:10:19 +0000 (23:10 -0000)
svn path=/; revision=79

trunk/src/gentoolkit/gentoolkit.py

index b300c39e43a7357723476abe5bf249ca3befc16f..9b2eec770e2a417dd654750616f0caf8f1c9ec34 100644 (file)
@@ -23,6 +23,7 @@ sys.path.insert(0, "/usr/lib/portage/pym")
 import portage
 import re
 import string
+import types
 
 settings = portage.config(clone=portage.settings)
 porttree = portage.db[portage.root]["porttree"]
@@ -183,10 +184,22 @@ class Package:
 
 def find_packages(search_key, masked=False):
        """Returns a list of Package objects that matched the search key."""
-       if masked:
-               t=portage.portdb.xmatch("match-all", search_key)
-       else:
-               t=portage.portdb.match(search_key)
+       try:
+               if masked:
+                       t=portage.portdb.xmatch("match-all", search_key)
+               else:
+                       t=portage.portdb.match(search_key)
+       # catch the "amgigous package" Exception
+       except ValueError, e:
+               if type(e[0]) == types.ListType:
+                       t=[]
+                       for cp in e[0]:
+                               if masked:
+                                       t += portage.portdb.xmatch("match-all", cp)
+                               else:
+                                       t += portage.portdb.match(cp)
+               else:
+                       raise ValueError(e)
        return [Package(x) for x in t]
 
 def find_best_match(search_key):