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:
Shawn O. Pearce 2009-04-16 08:00:42 -07:00
parent 4c5c7aa74b
commit b1168ffada

View File

@ -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,