Bug #209144 - For emerge --sync, show an informative error and don't
authorZac Medico <zmedico@gentoo.org>
Sun, 10 Feb 2008 01:50:52 +0000 (01:50 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 10 Feb 2008 01:50:52 +0000 (01:50 -0000)
return 1 when PORTAGE_RSYNC_RETRIES is exceeded.

svn path=/main/trunk/; revision=9321

pym/_emerge/__init__.py

index 7680d8c493003356b6810a1bd89a59c444b9448a..d285e9c843350e1ceda07eae4d6dfacff4f4d224 100644 (file)
@@ -5570,6 +5570,7 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
                        family = socket.AF_INET6
                ips=[]
                SERVER_OUT_OF_DATE = -1
+               EXCEEDED_MAX_RETRIES = -2
                while (1):
                        if ips:
                                del ips[0]
@@ -5737,12 +5738,17 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
                                # over retries
                                # exit loop
                                updatecache_flg=False
+                               exitcode = EXCEEDED_MAX_RETRIES
                                break
 
                if (exitcode==0):
                        emergelog(xterm_titles, "=== Sync completed with %s" % dosyncuri)
                elif exitcode == SERVER_OUT_OF_DATE:
                        sys.exit(1)
+               elif exitcode == EXCEEDED_MAX_RETRIES:
+                       sys.stderr.write(
+                               ">>> Exceeded PORTAGE_RSYNC_RETRIES: %s\n" % maxretries)
+                       sys.exit(1)
                elif (exitcode>0):
                        print
                        if exitcode==1: