Files
ClimatController/tools/update_version.py
T

64 lines
1.4 KiB
Python

from datetime import datetime
from pathlib import Path
import subprocess
import tomllib
PROJECT_DIR = Path(__file__).resolve().parent.parent
VERSION_FILE = PROJECT_DIR / "version.toml"
def get_git_commit() -> str:
"""Возвращает short hash текущего HEAD."""
try:
result = subprocess.run(
["git", "rev-parse", "--short", "HEAD"],
cwd=PROJECT_DIR,
capture_output=True,
text=True,
check=True,
)
return result.stdout.strip()
except (subprocess.CalledProcessError, FileNotFoundError):
return "unknown"
def main() -> None:
# Сначала читаем текущий version.toml.
# Нам нужны значения, которые разработчик поменял вручную.
with VERSION_FILE.open("rb") as file:
data = tomllib.load(file)
major = data["version"]["major"]
minor = data["version"]["minor"]
patch = data["version"]["patch"]
now = datetime.now()
content = f"""\
[version]
major = {major}
minor = {minor}
patch = {patch}
[build]
date = "{now:%Y-%m-%d}"
time = "{now:%H:%M:%S}"
"""
VERSION_FILE.write_text(
content,
encoding="utf-8",
)
print(
f"Version updated: "
f"{major}.{minor}.{patch} "
f"({now:%Y-%m-%d %H:%M:%S})"
)
if __name__ == "__main__":
main()