#!/usr/bin/env python3 """Build the Thüringen binary against the pinned synadm-tui core.""" from __future__ import annotations import hashlib import os from pathlib import Path import PyInstaller.__main__ ROOT = Path(__file__).resolve().parent.parent CORE = Path(os.environ.get("SYNADM_TUI_CORE", ROOT / "vendor" / "synadm-tui")).resolve() def main() -> int: if not (CORE / "synadm_tui" / "app.py").is_file(): raise SystemExit("synadm-tui-Core fehlt; git submodule update --init ausführen.") arguments = [ str(ROOT / "scripts" / "standalone_entry.py"), "--name=synadm-tui-thueringen", "--onefile", "--clean", f"--paths={ROOT}", f"--paths={CORE}", f"--distpath={ROOT / 'dist'}", f"--workpath={ROOT / 'build' / 'pyinstaller'}", f"--specpath={ROOT / 'build'}", ] for asset in ( "retro-cyberspace.png", "hacker-terminal.png", "cyberspace.block.json", "hacker.block.json", ): arguments.append(f"--add-data={CORE / 'synadm_tui' / 'assets' / asset}:synadm_tui/assets") for asset in ("thueringen-wappen.png", "thuringia.block.json"): arguments.append( f"--add-data={ROOT / 'synadm_tui_thueringen' / 'assets' / asset}:synadm_tui_thueringen/assets" ) PyInstaller.__main__.run(arguments) artifact = ROOT / "dist" / "synadm-tui-thueringen" checksum = hashlib.sha256(artifact.read_bytes()).hexdigest() (ROOT / "dist" / "SHA256SUMS").write_text( f"{checksum} synadm-tui-thueringen\n", encoding="utf-8" ) return 0 if __name__ == "__main__": raise SystemExit(main())