diff options
-rwxr-xr-x | bin/emerge | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge index 89a048a2a..6482bfb25 100755 --- a/bin/emerge +++ b/bin/emerge @@ -5154,6 +5154,8 @@ def action_sync(settings, trees, mtimedb, myopts, myaction): ("-6" in all_rsync_opts or "--ipv6" in all_rsync_opts): family = socket.AF_INET6 ips=[] + SERVER_OUT_OF_DATE = -1 + EXCEEDED_MAX_RETRIES = -2 while (1): if ips: del ips[0] @@ -5296,7 +5298,7 @@ def action_sync(settings, trees, mtimedb, myopts, myaction): print ">>> In order to force sync, remove '%s'." % servertimestampfile print ">>>" print - exitcode = 1 + exitcode = SERVER_OUT_OF_DATE elif (servertimestamp == 0) or (servertimestamp > mytimestamp): # actual sync mycommand = rsynccommand + [dosyncuri+"/", myportdir] @@ -5322,10 +5324,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: |