ManifestScheduler: handle InvalidDependString
authorZac Medico <zmedico@gentoo.org>
Wed, 3 Oct 2012 23:29:15 +0000 (16:29 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 3 Oct 2012 23:31:43 +0000 (16:31 -0700)
pym/portage/package/ebuild/_parallel_manifest/ManifestScheduler.py

index b480e7738a5208257537f66d672f82aa029c2d62..b002066fec7fd4a12a51db79ee280b4e61697622 100644 (file)
@@ -4,6 +4,7 @@
 import portage
 from portage import os
 from portage.dep import _repo_separator
+from portage.exception import InvalidDependString
 from portage.localization import _
 from portage.util._async.AsyncScheduler import AsyncScheduler
 from .ManifestTask import ManifestTask
@@ -61,9 +62,17 @@ class ManifestScheduler(AsyncScheduler):
                                if not cpv_list:
                                        continue
                                fetchlist_dict = {}
-                               for cpv in cpv_list:
-                                       fetchlist_dict[cpv] = \
-                                               list(portdb.getFetchMap(cpv, mytree=mytree))
+                               try:
+                                       for cpv in cpv_list:
+                                               fetchlist_dict[cpv] = \
+                                                       list(portdb.getFetchMap(cpv, mytree=mytree))
+                               except InvalidDependString as e:
+                                       portage.writemsg(
+                                               _("!!! %s%s%s: SRC_URI: %s\n") %
+                                               (cp, _repo_separator, repo_config.name, e),
+                                               noiselevel=-1)
+                                       self._error_count += 1
+                                       continue
 
                                yield ManifestTask(cp=cp, distdir=distdir,
                                        fetchlist_dict=fetchlist_dict, repo_config=repo_config,