mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-01-20 16:14:25 +00:00
Don't divide by zero in progress meter
If there are no projects to fetch, the progress meter would have divided by zero during `repo sync`, and that throws a ZeroDivisionError. Instead we report the progress with an unknown amount remaining. Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
parent
4c5c7aa74b
commit
b1168ffada
15
progress.py
15
progress.py
@ -16,7 +16,7 @@
|
||||
import sys
|
||||
|
||||
class Progress(object):
|
||||
def __init__(self, title, total):
|
||||
def __init__(self, title, total=0):
|
||||
self._title = title
|
||||
self._total = total
|
||||
self._done = 0
|
||||
@ -24,6 +24,13 @@ class Progress(object):
|
||||
|
||||
def update(self, inc=1):
|
||||
self._done += inc
|
||||
|
||||
if self._total <= 0:
|
||||
sys.stderr.write('\r%s: %d, ' % (
|
||||
self._title,
|
||||
self._done))
|
||||
sys.stderr.flush()
|
||||
else:
|
||||
p = (100 * self._done) / self._total
|
||||
|
||||
if self._lastp != p:
|
||||
@ -36,6 +43,12 @@ class Progress(object):
|
||||
sys.stderr.flush()
|
||||
|
||||
def end(self):
|
||||
if self._total <= 0:
|
||||
sys.stderr.write('\r%s: %d, done. \n' % (
|
||||
self._title,
|
||||
self._done))
|
||||
sys.stderr.flush()
|
||||
else:
|
||||
p = (100 * self._done) / self._total
|
||||
sys.stderr.write('\r%s: %3d%% (%d/%d), done. \n' % (
|
||||
self._title,
|
||||
|
Loading…
Reference in New Issue
Block a user