From c909c00123375a28f19b38e48d4a8468b7005212 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Mon, 30 Sep 2024 18:13:05 -0700 Subject: [PATCH] improve archivebox version cli output --- archivebox/main.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/archivebox/main.py b/archivebox/main.py index 142cdde8..9ab4e7de 100755 --- a/archivebox/main.py +++ b/archivebox/main.py @@ -166,6 +166,8 @@ def version(quiet: bool=False, out_dir: Path=DATA_DIR) -> None: """Print the ArchiveBox version and dependency information""" + from rich import print + from plugins_auth.ldap.apps import LDAP_CONFIG from django.conf import settings @@ -209,7 +211,7 @@ def version(quiet: bool=False, ) print() - print('{white}[i] Old dependency versions:{reset}'.format(**SHELL_CONFIG.ANSI)) + print('[pale_green3][i] Old dependency versions:[/pale_green3]') for name, dependency in DEPENDENCIES.items(): print(printable_dependency_version(name, dependency)) @@ -218,8 +220,11 @@ def version(quiet: bool=False, print() print() - print('{white}[i] New dependency versions:{reset}'.format(**SHELL_CONFIG.ANSI)) + print('[pale_green1][i] New dependency versions:[/pale_green1]') for name, binary in reversed(list(settings.BINARIES.items())): + if binary.name == 'archivebox': + continue + err = None try: loaded_bin = binary.load() @@ -227,21 +232,22 @@ def version(quiet: bool=False, err = e loaded_bin = binary raise - print('', '√' if loaded_bin.is_valid else 'X', '', loaded_bin.name.ljust(21), str(loaded_bin.version).ljust(15), loaded_bin.abspath or str(err)) + provider_summary = f'[dark_sea_green3]{loaded_bin.binprovider.name.ljust(10)}[/dark_sea_green3]' if loaded_bin.binprovider else '[grey23]not found[/grey23]' + print('', '[green]√[/green]' if loaded_bin.is_valid else '[red]X[/red]', '', loaded_bin.name.ljust(21), str(loaded_bin.version).ljust(12), provider_summary, loaded_bin.abspath or f'[red]{err}[/red]') print() - print('{white}[i] Source-code locations:{reset}'.format(**SHELL_CONFIG.ANSI)) + print('[white][i] Source-code locations:[/white]') for name, path in CONSTANTS.CODE_LOCATIONS.items(): print(printable_folder_status(name, path)) print() if CONSTANTS.DATABASE_FILE.exists() or CONSTANTS.ARCHIVE_DIR.exists() or CONSTANTS.CONFIG_FILE.exists(): - print('{white}[i] Data locations:{reset}'.format(**SHELL_CONFIG.ANSI)) + print('[white][i] Data locations:[/]') for name, path in CONSTANTS.DATA_LOCATIONS.items(): print(printable_folder_status(name, path)) else: print() - print('{white}[i] Data locations:{reset} (not in a data directory)'.format(**SHELL_CONFIG.ANSI)) + print('[white][i] Data locations:[/white] (not in a data directory)') print()