diff options
| -rw-r--r-- | trunk/src/gentoolkit/gentoolkit.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/trunk/src/gentoolkit/gentoolkit.py b/trunk/src/gentoolkit/gentoolkit.py index b300c39..9b2eec7 100644 --- a/trunk/src/gentoolkit/gentoolkit.py +++ b/trunk/src/gentoolkit/gentoolkit.py @@ -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): |
