From 909efcb32807f385f2695bdd882ad25eeaf911d5 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 3 Dec 2024 14:57:17 +0100 Subject: [PATCH] Require explicit arguments --- packaging/NSIS/create_windows_installer.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/packaging/NSIS/create_windows_installer.py b/packaging/NSIS/create_windows_installer.py index 5ec31c8e35..3f0f651435 100644 --- a/packaging/NSIS/create_windows_installer.py +++ b/packaging/NSIS/create_windows_installer.py @@ -5,6 +5,7 @@ import os import argparse # Command line arguments parsing and help. import subprocess +import semver import shutil from datetime import datetime @@ -14,11 +15,12 @@ from pathlib import Path from jinja2 import Template -def generate_nsi(source_path: str, dist_path: str, filename: str): +def generate_nsi(source_path: str, dist_path: str, filename: str, version: str): dist_loc = Path(os.getcwd(), dist_path) source_loc = Path(os.getcwd(), source_path) instdir = Path("$INSTDIR") dist_paths = [p.relative_to(dist_loc.joinpath("UltiMaker-Cura")) for p in sorted(dist_loc.joinpath("UltiMaker-Cura").rglob("*")) if p.is_file()] + parsed_version = semver.Version.parse(version) mapped_out_paths = {} for dist_path in dist_paths: if "__pycache__" not in dist_path.parts: @@ -44,10 +46,10 @@ def generate_nsi(source_path: str, dist_path: str, filename: str): nsis_content = template.render( app_name = f"UltiMaker Cura {os.getenv('CURA_VERSION_FULL')}", main_app = "UltiMaker-Cura.exe", - version = os.getenv('CURA_VERSION_FULL'), - version_major = os.environ.get("CURA_VERSION_MAJOR"), - version_minor = os.environ.get("CURA_VERSION_MINOR"), - version_patch = os.environ.get("CURA_VERSION_PATCH"), + version = version, + version_major = str(parsed_version.major), + version_minor = str(parsed_version.minor), + version_patch = str(parsed_version.patch), company = "UltiMaker", web_site = "https://ultimaker.com", year = datetime.now().year, @@ -74,9 +76,10 @@ def build(dist_path: str): if __name__ == "__main__": parser = argparse.ArgumentParser(description = "Create Windows exe installer of Cura.") - parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.") - parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder") - parser.add_argument("filename", type = str, help = "Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.exe')") + parser.add_argument("--source_path", type=str, help="Path to Conan install Cura folder.") + parser.add_argument("--dist_path", type=str, help="Path to Pyinstaller dist folder") + parser.add_argument("--filename", type = str, help = "Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.exe')") + parser.add_argument("--version", type=str, help="The full cura version, e.g. 5.9.0-beta.1+24132") args = parser.parse_args() - generate_nsi(args.source_path, args.dist_path, args.filename) + generate_nsi(args.source_path, args.dist_path, args.filename, args.version) build(args.dist_path)