| Index: third_party/repo/progress.py
|
| diff --git a/third_party/repo/progress.py b/third_party/repo/progress.py
|
| index 860d9d01125237f06d72c72c5dce94b325209e68..3d302814c2c6b175c2966d5db82b6666539d9370 100644
|
| --- a/third_party/repo/progress.py
|
| +++ b/third_party/repo/progress.py
|
| @@ -24,8 +24,9 @@ class Progress(object):
|
| self._lastp = -1
|
| self._start = time()
|
| self._show = False
|
| + self._width = 0
|
|
|
| - def update(self, inc=1):
|
| + def update(self, inc=1, extra=''):
|
| self._done += inc
|
|
|
| if not self._show:
|
| @@ -34,35 +35,37 @@ class Progress(object):
|
| else:
|
| return
|
|
|
| + text = None
|
| +
|
| if self._total <= 0:
|
| - sys.stdout.write('\r%s: %d, ' % (
|
| - self._title,
|
| - self._done))
|
| - sys.stdout.flush()
|
| + text = '%s: %3d' % (self._title, self._done)
|
| else:
|
| p = (100 * self._done) / self._total
|
|
|
| if self._lastp != p:
|
| self._lastp = p
|
| - sys.stdout.write('\r%s: %3d%% (%d/%d) ' % (
|
| - self._title,
|
| - p,
|
| - self._done,
|
| - self._total))
|
| - sys.stdout.flush()
|
| + text = '%s: %3d%% (%2d/%2d)' % (self._title, p,
|
| + self._done, self._total)
|
| +
|
| + if text:
|
| + text += ' ' + extra
|
| + spaces = max(self._width - len(text), 0)
|
| + sys.stdout.write('%s%*s\r' % (text, spaces, ''))
|
| + sys.stdout.flush()
|
| + self._width = len(text)
|
|
|
| def end(self):
|
| if not self._show:
|
| return
|
|
|
| if self._total <= 0:
|
| - sys.stdout.write('\r%s: %d, done. \n' % (
|
| + sys.stdout.write('%s: %d, done.\n' % (
|
| self._title,
|
| self._done))
|
| sys.stdout.flush()
|
| else:
|
| p = (100 * self._done) / self._total
|
| - sys.stdout.write('\r%s: %3d%% (%d/%d), done. \n' % (
|
| + sys.stdout.write('%s: %3d%% (%d/%d), done.\n' % (
|
| self._title,
|
| p,
|
| self._done,
|
|
|