"""Versionsangabe für die Fusszeile. Gleiche Idee wie in der Kantone-App: die CI reicht Tag und Commit als Build-Argumente durch. Lokal bleiben beide leer, dann erscheint der Build-Zeitpunkt - der ändert sich bei jedem Neubau und zeigt damit sofort, ob wirklich der neue Stand läuft. """ import os from functools import lru_cache from pathlib import Path BUILD_DATEI = Path("/app/build.txt") @lru_cache def version_info() -> dict[str, str]: version = os.getenv("APP_VERSION", "").strip() revision = os.getenv("APP_REVISION", "").strip() if version: return {"art": "release", "label": f"Version {version}", "titel": f"Commit {revision[:7]}" if revision else ""} if revision: return {"art": "commit", "label": f"Commit {revision[:7]}", "titel": "Kein Release - aus einem einzelnen Commit gebaut"} build = "" if BUILD_DATEI.is_file(): build = BUILD_DATEI.read_text(encoding="utf-8").strip() return {"art": "lokal", "label": build or "Entwicklungsstand", "titel": "Lokal gebaut, ohne Versionsangabe"}