Files
kleinanzeigen-bot/version.py

32 lines
1.1 KiB
Python

"""
SPDX-FileCopyrightText: © Sebastian Thomschke and contributors
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-ArtifactOfProjectHomePage: https://github.com/Second-Hand-Friends/kleinanzeigen-bot/
"""
import os
import shutil
import subprocess
from datetime import datetime, timezone
# used in pyproject.toml [tool.pdm.version]
def get_version() -> str:
commit_hash = os.environ.get("GIT_COMMIT_HASH", "").strip()
if commit_hash:
return f"{datetime.now(timezone.utc).year}+{commit_hash}"
git = shutil.which("git")
if git is None:
raise RuntimeError("unable to compute version: set GIT_COMMIT_HASH or build from a valid git checkout")
try:
result = subprocess.run( # noqa: S603 running git is safe here
[git, "rev-parse", "--short", "HEAD"],
check=True,
capture_output=True,
text=True,
)
except subprocess.CalledProcessError as ex:
raise RuntimeError("unable to compute version: set GIT_COMMIT_HASH or build from a valid git checkout") from ex
commit_hash = result.stdout.strip()
return f"{datetime.now(timezone.utc).year}+{commit_hash}"