diff --git a/setup_fingerprint_check/src/setup_fingerprint_check/cli.py b/setup_fingerprint_check/src/setup_fingerprint_check/cli.py new file mode 100644 index 0000000..4d85346 --- /dev/null +++ b/setup_fingerprint_check/src/setup_fingerprint_check/cli.py @@ -0,0 +1,41 @@ +import argparse +import sys +from setup_fingerprint_check.core import check_setup_fingerprint + + +def main() -> None: + """CLI entrypoint for setup fingerprint verification.""" + parser = argparse.ArgumentParser( + description="Verify that the current setup fingerprint matches the expected one." + ) + parser.add_argument( + "--expected", + required=True, + help="Expected fingerprint of the test setup.", + ) + + args = parser.parse_args() + + expected_fingerprint: str = args.expected.strip() + + # Basic validation for input integrity + if not expected_fingerprint: + print("Error: Expected fingerprint cannot be empty.", file=sys.stderr) + sys.exit(1) + + try: + matches = check_setup_fingerprint(expected_fingerprint) + except Exception as exc: # noqa: BLE001 + print(f"Error: Fingerprint verification failed ({exc}).", file=sys.stderr) + sys.exit(1) + + if matches: + print("valid") + sys.exit(0) + else: + print("mismatch") + sys.exit(1) + + +if __name__ == "__main__": + main()