Add setup_fingerprint_logging/src/setup_fingerprint_logging/cli.py

This commit is contained in:
Mika 2026-02-25 12:01:57 +00:00
parent d2d95bb475
commit e9d37550f4

View file

@ -0,0 +1,49 @@
import argparse
import logging
import sys
from setup_fingerprint_logging.core import generate_setup_fingerprint
def main() -> None:
"""Command-line interface for generating and logging setup fingerprint."""
parser = argparse.ArgumentParser(
description=(
"Erzeugt einen deterministischen Setup-Fingerprint basierend auf den angegebenen Parametern"
)
)
parser.add_argument("--policy_hash", required=True, help="Policy-Hashwert")
parser.add_argument("--runner_image", required=True, help="Name oder Hash des Runner-Images")
parser.add_argument("--kernel", required=True, help="Kernel-Version")
parser.add_argument("--python_version", required=True, help="Python-Laufzeitversion")
parser.add_argument("--gate_version", required=True, help="Version des Gate-Monitor-Systems")
args = parser.parse_args()
logging.basicConfig(level=logging.INFO, format="%(message)s")
try:
# Input Validation
for param_name in ["policy_hash", "runner_image", "kernel", "python_version", "gate_version"]:
value = getattr(args, param_name)
assert isinstance(value, str) and value.strip(), f"Ungültiger Wert für {param_name}"
fingerprint = generate_setup_fingerprint(
policy_hash=args.policy_hash,
runner_image=args.runner_image,
kernel=args.kernel,
python_version=args.python_version,
gate_version=args.gate_version,
)
logging.info(f"Setup-Fingerprint: {fingerprint}")
except AssertionError as e:
logging.error(str(e))
sys.exit(1)
except Exception as e:
logging.exception(f"Fehler bei der Fingerprint-Erzeugung: {e}")
sys.exit(1)
if __name__ == "__main__":
main()