diff --git a/logger/src/logger/cli.py b/logger/src/logger/cli.py new file mode 100644 index 0000000..e6d61d4 --- /dev/null +++ b/logger/src/logger/cli.py @@ -0,0 +1,44 @@ +import argparse +import sys +from logger import core + + +def parse_args(argv=None) -> argparse.Namespace: + """Parst CLI-Argumente --interval und --duration.""" + parser = argparse.ArgumentParser(description="Startet die Lichtmessungs-Logger-Sitzung.") + parser.add_argument( + "--interval", + type=float, + required=True, + help="Zeitintervall zwischen Messungen (in Sekunden).", + ) + parser.add_argument( + "--duration", + type=float, + required=True, + help="Gesamtdauer der Aufzeichnung (in Sekunden).", + ) + args = parser.parse_args(argv) + + # Validierung (ci_ready & input_validation_required) + assert args.interval > 0, "Interval must be positive." + assert args.duration > 0, "Duration must be positive." + return args + + +def main(argv=None) -> None: + """CLI-Einstiegspunkt zum Starten der Logging-Session.""" + args = parse_args(argv) + log_path = core.start_logging(interval=args.interval, duration=args.duration) + print(f"Lichtlogger abgeschlossen. Logdatei: {log_path}") + + +if __name__ == "__main__": + try: + main(sys.argv[1:]) + except AssertionError as e: + sys.stderr.write(f"Fehlerhafte Eingabe: {e}\n") + sys.exit(1) + except Exception as e: # generische Fehlerbehandlung für CLI-Sicherheit + sys.stderr.write(f"Unerwarteter Fehler: {e}\n") + sys.exit(2)