Add logger_setup/src/logger_setup/cli.py

This commit is contained in:
Mika 2026-07-05 02:07:33 +00:00
parent c7b4795085
commit 7eb3280169

View file

@ -0,0 +1,57 @@
import argparse
import sys
from pathlib import Path
from logger_setup import core
def parse_args() -> argparse.Namespace:
"""Parst CLI-Argumente für Start des Sensor-Loggings."""
parser = argparse.ArgumentParser(
description="Steuert den Mikroklima-Logger mit definierbarem Messintervall und Ausgabedatei."
)
parser.add_argument(
"--interval",
type=float,
required=True,
help="Zeitintervall für Messungen in Sekunden (float)."
)
parser.add_argument(
"--output",
type=str,
required=True,
help="Pfad zur CSV-Datei für gespeicherte Sensordaten."
)
return parser.parse_args()
def main() -> None:
"""CLI-Einstiegspunkt: Startet Logging-Prozess anhand von Benutzerparametern."""
args = parse_args()
# Input validation
if args.interval <= 0:
print("Fehler: Intervall muss größer als 0 sein.", file=sys.stderr)
sys.exit(1)
output_path = Path(args.output).expanduser().resolve()
# Sicherstellen, dass das Zielverzeichnis existiert
try:
output_path.parent.mkdir(parents=True, exist_ok=True)
except OSError as exc:
print(f"Fehler beim Erstellen des Zielverzeichnisses: {exc}", file=sys.stderr)
sys.exit(1)
# Logging starten und speichern
try:
core.start_logging(interval=args.interval)
core.save_to_csv(filename=str(output_path))
except KeyboardInterrupt:
print("\nLogging abgebrochen durch Benutzer.")
except Exception as exc: # Fallback für unerwartete Fehler
print(f"Fehler beim Starten des Loggings: {exc}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()