progress: hide progress bar when --quiet

We want progress bars in the default output mode, but not when the
user specifies --quiet.  Add a setting to the Progress bar class so
it takes care of not displaying anything itself rather than having
to update every subcommand to conditionally setup & call the object.

Change-Id: I1134993bffc5437bc22e26be11a512125f10597f
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/303225
Reviewed-by: Raman Tenneti <rtenneti@google.com>
Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
Mike Frysinger
2021-04-13 15:07:21 -04:00
parent 9180a07b8f
commit 151701e85f
5 changed files with 16 additions and 8 deletions

View File

@ -42,7 +42,8 @@ def duration_str(total):
class Progress(object):
def __init__(self, title, total=0, units='', print_newline=False, delay=True):
def __init__(self, title, total=0, units='', print_newline=False, delay=True,
quiet=False):
self._title = title
self._total = total
self._done = 0
@ -54,6 +55,13 @@ class Progress(object):
self._show_jobs = False
self._active = 0
# When quiet, never show any output. It's a bit hacky, but reusing the
# existing logic that delays initial output keeps the rest of the class
# clean. Basically we set the start time to years in the future.
if quiet:
self._show = False
self._start += 2**32
def start(self, name):
self._active += 1
if not self._show_jobs: