31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
|
"""Print progress for a human listening trial inside Fenrir TTY or -x mode.
|
|
|
|
This generates terminal output only; Fenrir owns all tone playback.
|
|
"""
|
|
|
|
import argparse
|
|
import time
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument("--scroll", action="store_true", help="Print each update on a new line to test scrolling")
|
|
args = parser.parse_args()
|
|
linePrefix = "" if args.scroll else "\r"
|
|
lineEnd = "\n" if args.scroll else ""
|
|
for percentage in range(0, 101, 10):
|
|
filled = percentage // 10
|
|
barText = "#" * filled + " " * (10 - filled)
|
|
print(f"{linePrefix}Download {percentage:3}% [{barText}]", end=lineEnd, flush=True)
|
|
time.sleep(0.2)
|
|
print()
|
|
for spinnerChar in "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏" * 2:
|
|
print(f"{linePrefix}{spinnerChar} Preparing files", end=lineEnd, flush=True)
|
|
time.sleep(0.25)
|
|
print(linePrefix + "Done." + " " * 20, flush=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|