Binárka má vědět, která je

Venku jsou čtyři soubory na release, tři systémy a k tomu zdrojáky. Když
někdo napíše, že mu něco nefunguje, není jak zjistit, co vlastně pustil.

Verzi zapisuje build.sh do verze.txt, kostky.spec ji přibalí a version.py ji
z rozbalené binárky přečte. Ze zdrojáků má přednost git describe, který ví
i o commitech nad tagem a o rozdělané práci. V CI se na tagu vnucuje
proměnnou, protože runner klonuje jeden commit bez značek.

Hlásí se přes --version, v úvodní hlášce serveru a v patičce každé stránky.
Zkouška v obou workflow ověří, že se do binárky opravdu dostala.
This commit is contained in:
gitea-actions committed 2026-08-22 18:26:32 +02:00
1 parent 4ffd7d3c9d
commit e3d56f4c22
12 files changed
+181 -8

No files matched your search

+19 -2
View File
@@ -22,6 +22,7 @@ import console
import net
import stats
import storage
import version
from core import FINAL_SCORE, Game, GameOver
def bundled(folder: str) -> str:
@@ -125,6 +126,12 @@ def qr_svg(data: str) -> Markup:
)
@app.context_processor
def verze():
"""Verze do patičky. Když někdo hlásí chybu, tohle je první otázka."""
return {"verze": version.current()}
@app.template_filter("datum")
def datum(value: str) -> str:
"""Z ISO textu udělá 12. 8. 2026."""
@@ -320,8 +327,9 @@ def hall():
games=storage.recent_games(conn))
if __name__ == "__main__":
console.utf8()
def announce() -> None:
"""Vypíše, kde všude je počitadlo k mání, a čím je zrovna spuštěné."""
print(f"Kostky {version.current()}\n")
found = net.addresses()
@@ -336,4 +344,13 @@ if __name__ == "__main__":
print(f"\nDatabáze: {storage.DB_PATH.resolve()}")
if __name__ == "__main__":
console.utf8()
if {"--version", "-V"} & set(sys.argv[1:]):
print(f"kostky {version.current()}")
sys.exit(0)
announce()
app.run(host="0.0.0.0", port=PORT, threaded=True)