25 lines
902 B
Python
25 lines
902 B
Python
"""Version and build stamp, so the UI can say what is actually deployed."""
|
|
import os
|
|
from datetime import datetime, timezone
|
|
from importlib.metadata import PackageNotFoundError
|
|
from importlib.metadata import version as package_version
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parent.parent
|
|
|
|
|
|
def _built_at() -> str:
|
|
"""Newest source file - a redeploy that did not take keeps the old stamp."""
|
|
files = [*(ROOT / "wordarr").rglob("*.py"), *(ROOT / "static").glob("*")]
|
|
newest = max((f.stat().st_mtime for f in files), default=0.0)
|
|
return datetime.fromtimestamp(newest, timezone.utc).strftime("%Y-%m-%d %H:%M")
|
|
|
|
|
|
try:
|
|
VERSION = package_version("wordarr")
|
|
except PackageNotFoundError: # running from a checkout without an install
|
|
VERSION = "0.0.0+src"
|
|
|
|
BUILD = os.environ.get("WORDARR_BUILD", "").strip() # git sha, set by the image build
|
|
BUILT_AT = _built_at()
|