From d07b5088306f1040c400b64d7bd532e69cb26970 Mon Sep 17 00:00:00 2001 From: viewit Date: Thu, 21 May 2026 14:18:53 +0200 Subject: [PATCH] test: kx-bridge.spec einchecken (war durch *.spec geignored) --- .gitignore | 1 + kx-bridge.spec | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 kx-bridge.spec diff --git a/.gitignore b/.gitignore index d86da6a..c2b3d14 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ __pycache__/ build/ dist/ *.spec +!kx-bridge.spec releases/*/kx-bridge releases/*/extract_credentials releases/*/extract_credentials.exe diff --git a/kx-bridge.spec b/kx-bridge.spec new file mode 100644 index 0000000..efbc7c1 --- /dev/null +++ b/kx-bridge.spec @@ -0,0 +1,45 @@ +# PyInstaller-Spec für kx-bridge — plattformneutral (Linux + Windows via PyBuilder). +# Wird relativ zum Repo-Root ausgeführt (`pyinstaller kx-bridge.spec`), wo +# kobrax_moonraker_bridge.py und web/ flach liegen (Release-Repo-Layout). +# +# Bindet das Web-Theme-System (web/themes// + web/DOC/) ins Onefile-Binary +# ein → zur Laufzeit über sys._MEIPASS lesbar (_WEB_BASE in der Bridge). +from PyInstaller.utils.hooks import collect_all + +datas = [("web", "web")] +binaries = [] +hiddenimports = [] + +# pycryptodome vollständig einsammeln (Krypto für die Drucker-Auth) +_d, _b, _h = collect_all("pycryptodome") +datas += _d +binaries += _b +hiddenimports += _h + +a = Analysis( + ["kobrax_moonraker_bridge.py"], + pathex=[], + binaries=binaries, + datas=datas, + hiddenimports=hiddenimports, + hookspath=[], + runtime_hooks=[], + excludes=[], + noarchive=False, +) +pyz = PYZ(a.pure) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.datas, + [], + name="kx-bridge", + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=False, + console=True, + onefile=True, +)