From ac197aa5535633d6fb3c19ab38553aba46637405 Mon Sep 17 00:00:00 2001 From: Lam Chau Date: Sun, 3 Nov 2024 15:04:17 -0800 Subject: [PATCH] chore: license-checker improvements (#212) --- .github/workflows/scripts/check_licenses.py | 15 +++++++++++-- justfile | 24 +++++++++++++++++++-- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scripts/check_licenses.py b/.github/workflows/scripts/check_licenses.py index 4c27d2d0b3..8b118db0f2 100755 --- a/.github/workflows/scripts/check_licenses.py +++ b/.github/workflows/scripts/check_licenses.py @@ -271,12 +271,23 @@ class LicenseChecker: def main() -> None: parser = argparse.ArgumentParser(description="Check package licenses in TOML files") - parser.add_argument("toml_files", type=Path, nargs="+", help="Paths to TOML files") - args = parser.parse_args() + parser.add_argument("toml_files", type=Path, nargs="*", help="Paths to TOML files") + parser.add_argument("--supported-licenses", action="store_true", help="Print supported licenses") checker = LicenseChecker() all_results: dict[str, LicenseInfo] = {} + args = parser.parse_args() + if args.supported_licenses: + for license in sorted(checker.config.allowed_licenses, key=str.casefold): + print(f" - {license}") + sys.exit(0) + + if not args.toml_files: + print("Error: No TOML files specified", file=sys.stderr) + parser.print_help() + sys.exit(1) + for toml_file in args.toml_files: results = checker.check_licenses(toml_file) for package, info in results.items(): diff --git a/justfile b/justfile index e2923c65d8..6613506245 100644 --- a/justfile +++ b/justfile @@ -11,8 +11,28 @@ integration *FLAGS: @uv run pytest tests/ -m integration {{ FLAGS }} # check licenses -check-licenses: - @uv run .github/workflows/scripts/check_licenses.py pyproject.toml packages/exchange/pyproject.toml +check-licenses force="": + #!/usr/bin/env bash + mapfile -t license_files < <(find . -type f -name 'pyproject.toml') + total=${#license_files[@]} + + for ((i=0; i