For bug #158508, make --fetchonly display a list of packages for which the fetch...
authorZac Medico <zmedico@gentoo.org>
Tue, 19 Dec 2006 03:11:17 +0000 (03:11 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 19 Dec 2006 03:11:17 +0000 (03:11 -0000)
svn path=/main/trunk/; revision=5322

bin/emerge

index 1a41d96c62741c33beaa5de0b24f731b27683ac2..7ca854804691c75a48c02883957620c3356ab43b 100755 (executable)
@@ -2511,7 +2511,7 @@ class MergeTask(object):
                                portage.config(clone=trees["/"]["vartree"].settings)
 
        def merge(self, mylist, favorites, mtimedb):
-               returnme=0
+               failed_fetches = []
                mymergelist=[]
                ldpath_mtimes = mtimedb["ldpath"]
                xterm_titles = "notitles" not in self.settings.features
@@ -2659,7 +2659,7 @@ class MergeTask(object):
                                                print
                                                print "!!! Fetch for",y,"failed, continuing..."
                                                print
-                                               returnme=1
+                                               failed_fetches.append(pkg_key)
                                        continue
 
                                portage.doebuild_environment(y, "setup", myroot,
@@ -2885,9 +2885,15 @@ class MergeTask(object):
                #by doing an exit this way, --fetchonly can continue to try to
                #fetch everything even if a particular download fails.
                if "--fetchonly" in self.myopts or "--fetch-all-uri" in self.myopts:
-                       if returnme:
-                               print "\n\n!!! Some fetch errors were encountered.  Please see above for details.\n\n"
-                               sys.exit(returnme)
+                       if failed_fetches:
+                               sys.stderr.write("\n\n!!! Some fetch errors were " + \
+                                       "encountered.  Please see above for details.\n\n")
+                               for cpv in failed_fetches:
+                                       sys.stderr.write("   ")
+                                       sys.stderr.write(cpv)
+                                       sys.stderr.write("\n")
+                               sys.stderr.write("\n")
+                               sys.exit(1)
                        else:
                                sys.exit(0)
                return os.EX_OK