diff --git a/progress.py b/progress.py index b08f52e5..0dd5d1a8 100644 --- a/progress.py +++ b/progress.py @@ -21,7 +21,8 @@ from trace import IsTrace _NOT_TTY = not os.isatty(2) class Progress(object): - def __init__(self, title, total=0, units='', print_newline=False): + def __init__(self, title, total=0, units='', print_newline=False, + always_print_percentage=False): self._title = title self._total = total self._done = 0 @@ -30,6 +31,7 @@ class Progress(object): self._show = False self._units = units self._print_newline = print_newline + self._always_print_percentage = always_print_percentage def update(self, inc=1): self._done += inc @@ -51,7 +53,7 @@ class Progress(object): else: p = (100 * self._done) / self._total - if self._lastp != p: + if self._lastp != p or self._always_print_percentage: self._lastp = p sys.stderr.write('\r%s: %3d%% (%d%s/%d%s)%s' % ( self._title, diff --git a/subcmds/sync.py b/subcmds/sync.py index 8a043d9f..8de730bc 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -357,7 +357,8 @@ later is required to fix a server side protocol bug. fetched = set() lock = _threading.Lock() pm = Progress('Fetching projects', len(projects), - print_newline=not(opt.quiet)) + print_newline=not(opt.quiet), + always_print_percentage=opt.quiet) objdir_project_map = dict() for project in projects: