Require explicit arguments

This commit is contained in:
Erwan MATHIEU 2024-12-03 14:33:14 +01:00
parent 67924d2e37
commit 3ac81e54c0

View File

@ -7,6 +7,7 @@ import os
import shutil import shutil
import subprocess import subprocess
import uuid import uuid
import semver
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
@ -20,11 +21,12 @@ def work_path(filename: Path) -> Path:
return filename.parent return filename.parent
def generate_wxs(source_path: Path, dist_path: Path, filename: Path, app_name: str): def generate_wxs(source_path: Path, dist_path: Path, filename: Path, app_name: str, version: str):
source_loc = Path(os.getcwd(), source_path) source_loc = Path(os.getcwd(), source_path)
dist_loc = Path(os.getcwd(), dist_path) dist_loc = Path(os.getcwd(), dist_path)
work_loc = work_path(filename) work_loc = work_path(filename)
work_loc.mkdir(parents=True, exist_ok=True) work_loc.mkdir(parents=True, exist_ok=True)
parsed_version = semver.Version.parse(version)
jinja_template_path = Path(source_loc.joinpath("packaging", "msi", "UltiMaker-Cura.wxs.jinja")) jinja_template_path = Path(source_loc.joinpath("packaging", "msi", "UltiMaker-Cura.wxs.jinja"))
with open(jinja_template_path, "r") as f: with open(jinja_template_path, "r") as f:
@ -33,10 +35,10 @@ def generate_wxs(source_path: Path, dist_path: Path, filename: Path, app_name: s
wxs_content = template.render( wxs_content = template.render(
app_name=f"{app_name}", app_name=f"{app_name}",
main_app="UltiMaker-Cura.exe", main_app="UltiMaker-Cura.exe",
version=os.getenv('CURA_VERSION_FULL'), version=version,
version_major=os.environ.get("CURA_VERSION_MAJOR"), version_major=str(parsed_version.major),
version_minor=os.environ.get("CURA_VERSION_MINOR"), version_minor=str(parsed_version.minor),
version_patch=os.environ.get("CURA_VERSION_PATCH"), version_patch=str(parsed_version.patch),
company="UltiMaker", company="UltiMaker",
web_site="https://ultimaker.com", web_site="https://ultimaker.com",
year=datetime.now().year, year=datetime.now().year,
@ -111,12 +113,13 @@ def build(dist_path: Path, filename: Path):
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Create Windows msi installer of Cura.") parser = argparse.ArgumentParser(description="Create Windows msi installer of Cura.")
parser.add_argument("source_path", type=Path, help="Path to Conan install Cura folder.") parser.add_argument("--source_path", type=Path, help="Path to Conan install Cura folder.")
parser.add_argument("dist_path", type=Path, help="Path to Pyinstaller dist folder") parser.add_argument("--dist_path", type=Path, help="Path to Pyinstaller dist folder")
parser.add_argument("filename", type=Path, parser.add_argument("--filename", type=Path,
help="Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.msi')") help="Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.msi')")
parser.add_argument("name", type=str, help="App name (e.g. 'UltiMaker Cura')") parser.add_argument("--name", type=str, help="App name (e.g. 'UltiMaker Cura')")
parser.add_argument("--version", type=str, help="The full cura version, e.g. 5.9.0-beta.1+24132")
args = parser.parse_args() args = parser.parse_args()
generate_wxs(args.source_path.resolve(), args.dist_path.resolve(), args.filename.resolve(), args.name) generate_wxs(args.source_path.resolve(), args.dist_path.resolve(), args.filename.resolve(), args.name, args.version)
cleanup_artifacts(args.dist_path.resolve()) cleanup_artifacts(args.dist_path.resolve())
build(args.dist_path.resolve(), args.filename) build(args.dist_path.resolve(), args.filename)