emerge: don't traceback or invalid *.ebuild args
authorZac Medico <zmedico@gentoo.org>
Wed, 13 Feb 2013 04:44:31 +0000 (20:44 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 13 Feb 2013 04:44:31 +0000 (20:44 -0800)
pym/_emerge/depgraph.py

index 06a9a46d1f5b5a074d3d74594b4d1427656160a8..fd6db38f30454cbc39a9b329cd3b5a34365a162e 100644 (file)
@@ -2584,15 +2584,16 @@ class depgraph(object):
                                pkgdir = os.path.dirname(ebuild_path)
                                tree_root = os.path.dirname(os.path.dirname(pkgdir))
                                cp = pkgdir[len(tree_root)+1:]
-                               e = portage.exception.PackageNotFound(
-                                       ("%s is not in a valid portage tree " + \
-                                       "hierarchy or does not exist") % x)
+                               error_msg = ("\n\n!!! '%s' is not in a valid portage tree "
+                                       "hierarchy or does not exist\n") % x
                                if not portage.isvalidatom(cp):
-                                       raise e
+                                       writemsg(error_msg, noiselevel=-1)
+                                       return 0, myfavorites
                                cat = portage.catsplit(cp)[0]
                                mykey = cat + "/" + os.path.basename(ebuild_path[:-7])
                                if not portage.isvalidatom("="+mykey):
-                                       raise e
+                                       writemsg(error_msg, noiselevel=-1)
+                                       return 0, myfavorites
                                ebuild_path = portdb.findname(mykey)
                                if ebuild_path:
                                        if ebuild_path != os.path.join(os.path.realpath(tree_root),
@@ -2608,8 +2609,8 @@ class depgraph(object):
                                                countdown(int(self._frozen_config.settings["EMERGE_WARNING_DELAY"]),
                                                        "Continuing...")
                                else:
-                                       raise portage.exception.PackageNotFound(
-                                               "%s is not in a valid portage tree hierarchy or does not exist" % x)
+                                       writemsg(error_msg, noiselevel=-1)
+                                       return 0, myfavorites
                                pkg = self._pkg(mykey, "ebuild", root_config,
                                        onlydeps=onlydeps, myrepo=portdb.getRepositoryName(
                                        os.path.dirname(os.path.dirname(os.path.dirname(ebuild_path)))))