cli: --details-to-stdout: no progress bars (MR 2007)
Hide progress bars if --details-to-stdout is used, which redirects all output that would land in the pmbootstrap log to stdout. This caused the progress bar output to get mixed with the apk output. A new progress bar would get drawn whenever a new package was installed, without removing the previous progress bar.
This commit is contained in:
parent
1eac61bcf7
commit
a9d4ba32a2
|
@ -102,7 +102,7 @@ def apk_with_progress(args, command, chroot=False, suffix="native"):
|
|||
while p_apk.poll() is None:
|
||||
line = p_cat.stdout.readline().decode('utf-8')
|
||||
progress = _compute_progress(line)
|
||||
pmb.helpers.cli.progress_print(progress)
|
||||
pmb.helpers.cli.progress_flush()
|
||||
pmb.helpers.cli.progress_print(args, progress)
|
||||
pmb.helpers.cli.progress_flush(args)
|
||||
pmb.helpers.run_core.check_return_code(args, p_apk.returncode,
|
||||
log_msg)
|
||||
|
|
|
@ -105,7 +105,7 @@ def confirm(args, question="Continue?", default=False, no_assumptions=False):
|
|||
return answer == "y"
|
||||
|
||||
|
||||
def progress_print(progress):
|
||||
def progress_print(args, progress):
|
||||
"""
|
||||
Print a snapshot of a progress bar to STDOUT. Call progress_flush to end
|
||||
printing progress and clear the line. No output is printed in
|
||||
|
@ -122,16 +122,16 @@ def progress_print(progress):
|
|||
filled = "\u2588" * chars
|
||||
empty = " " * (width - chars)
|
||||
percent = int(progress * 100)
|
||||
if pmb.config.is_interactive:
|
||||
if pmb.config.is_interactive and not args.details_to_stdout:
|
||||
sys.stdout.write(f"\u001b7{percent:>3}% {filled}{empty}")
|
||||
sys.stdout.flush()
|
||||
sys.stdout.write("\u001b8\u001b[0K")
|
||||
|
||||
|
||||
def progress_flush():
|
||||
def progress_flush(args):
|
||||
"""
|
||||
Finish printing a progress bar. This will erase the line. Does nothing in
|
||||
non-interactive mode.
|
||||
"""
|
||||
if pmb.config.is_interactive:
|
||||
if pmb.config.is_interactive and not args.details_to_stdout:
|
||||
sys.stdout.flush()
|
||||
|
|
|
@ -180,7 +180,7 @@ def update(args, arch=None, force=False, existing_only=False):
|
|||
|
||||
# Download and move to right location
|
||||
for (i, (url, target)) in enumerate(outdated.items()):
|
||||
pmb.helpers.cli.progress_print(i / len(outdated))
|
||||
pmb.helpers.cli.progress_print(args, i / len(outdated))
|
||||
temp = pmb.helpers.http.download(args, url, "APKINDEX", False,
|
||||
logging.DEBUG, True)
|
||||
if not temp:
|
||||
|
@ -190,7 +190,7 @@ def update(args, arch=None, force=False, existing_only=False):
|
|||
if not os.path.exists(target_folder):
|
||||
pmb.helpers.run.root(args, ["mkdir", "-p", target_folder])
|
||||
pmb.helpers.run.root(args, ["cp", temp, target])
|
||||
pmb.helpers.cli.progress_flush()
|
||||
pmb.helpers.cli.progress_flush(args)
|
||||
|
||||
return True
|
||||
|
||||
|
|
Loading…
Reference in New Issue