diff --git a/build.py b/build.py index 3063cf1..87877c9 100644 --- a/build.py +++ b/build.py @@ -12,28 +12,41 @@ import sys from pathlib import Path +import shutil + def build(): system = platform.system() project_dir = Path(__file__).parent + dist_dir = project_dir / "dist" + + # Alte App löschen + app_name = "fcco-Converter" + if system == "Darwin": + old_app = dist_dir / f"{app_name}.app" + else: + old_app = dist_dir / f"{app_name}.exe" + + if old_app.exists(): + if old_app.is_dir(): + shutil.rmtree(old_app) + else: + old_app.unlink() + # Basis-Argumente für PyInstaller args = [ sys.executable, "-m", "PyInstaller", "--onefile", "--windowed", - "--name", "fcco-Converter", + "--name", app_name, "--clean", ] # Icon hinzufügen (wenn vorhanden) icon_path = project_dir / "icon.ico" if icon_path.exists(): - if system == "Windows": - args.extend(["--icon", str(icon_path)]) - elif system == "Darwin": - # macOS braucht .icns – .ico funktioniert trotzdem als Fallback - args.extend(["--icon", str(icon_path)]) + args.extend(["--icon", str(icon_path)]) # Versteckte Imports (die PyInstaller evtl. nicht automatisch findet) hidden_imports = [ @@ -66,8 +79,13 @@ def build(): result = subprocess.run(args, cwd=str(project_dir)) if result.returncode == 0: + # Kopiere config.json in den dist Ordner, damit die App sie direkt findet + config_src = project_dir / "config.json" + if config_src.exists(): + shutil.copy(config_src, dist_dir / "config.json") + print() - print(f"Build erfolgreich! Ausgabe in: {project_dir / 'dist'}") + print(f"Build erfolgreich! Ausgabe in: {dist_dir}") else: print() print(f"Build fehlgeschlagen (Code {result.returncode}).")