diff --git a/build_msi.py b/build_msi.py index 3183eed..75cbe22 100644 --- a/build_msi.py +++ b/build_msi.py @@ -6,9 +6,18 @@ Erstellt einen MSI-Installer aus dem PyInstaller Build. import subprocess import sys +import tomllib from pathlib import Path +def get_version(project_root: Path) -> str: + """Liest die Versionsnummer aus pyproject.toml.""" + pyproject_path = project_root / "pyproject.toml" + with pyproject_path.open("rb") as f: + data = tomllib.load(f) + return data["project"]["version"] + + def build_msi(): """Erstellt MSI-Installer mit WiX v6.""" project_root = Path(__file__).parent @@ -19,7 +28,12 @@ def build_msi(): print("Bitte zuerst ausführen: uv run python build_windows.py") sys.exit(1) + version = get_version(project_root) + msi_output = project_root / "dist" / f"DocuMentor-{version}.msi" + print(f"DocuMentor Build gefunden: {dist_dir}") + print(f"Version: {version}") + print(f"MSI-Ausgabe: {msi_output}") print() # Schritt 1: ProductFiles.wxs generieren (ersetzt WiX heat) @@ -34,7 +48,10 @@ def build_msi(): # Schritt 2: MSI kompilieren mit WiX v6 print("Schritt 2/2: Kompiliere MSI-Installer...") - result = subprocess.run(["wix", "build", "DocuMentor.wxs", "ProductFiles.wxs", "-o", "DocuMentor.msi"], check=False) + result = subprocess.run( + ["wix", "build", "DocuMentor.wxs", "ProductFiles.wxs", "-o", str(msi_output)], + check=False, + ) if result.returncode != 0: print("\nFEHLER: MSI-Kompilierung fehlgeschlagen!") @@ -43,10 +60,10 @@ def build_msi(): sys.exit(1) print() - print("[OK] MSI erfolgreich erstellt: DocuMentor.msi") + print(f"[OK] MSI erfolgreich erstellt: {msi_output}") print() print("Installation testen mit:") - print(" msiexec /i DocuMentor.msi") + print(f" msiexec /i \"{msi_output}\"") if __name__ == "__main__": diff --git a/build_windows.py b/build_windows.py index dd642ec..747ca90 100644 --- a/build_windows.py +++ b/build_windows.py @@ -10,8 +10,15 @@ Erstellt: import shutil import subprocess import sys +import tomllib from pathlib import Path -from datetime import datetime + + +def get_version(project_root: Path) -> str: + """Liest die Versionsnummer aus pyproject.toml.""" + with (project_root / "pyproject.toml").open("rb") as f: + return tomllib.load(f)["project"]["version"] + def main(): project_root = Path(__file__).parent @@ -113,8 +120,8 @@ Bei Fragen oder Problemen erstellen Sie bitte ein Issue auf GitHub. # 6. ZIP-Archiv erstellen print("\n[6/6] ZIP-Archiv erstellen...") - timestamp = datetime.now().strftime("%Y%m%d") - zip_name = f"DocuMentor-{timestamp}-Windows" + version = get_version(project_root) + zip_name = f"DocuMentor-{version}" zip_path = dist_dir / zip_name shutil.make_archive(