#!/usr/bin/env python3 import subprocess import sys from pathlib import Path SCRIPT_DIR = Path(__file__).resolve().parent REPO_ROOT = SCRIPT_DIR.parents[1] ENTRYPOINT = SCRIPT_DIR / "multi_powercycle.py" DIST_DIR = REPO_ROOT / "dist" def main(): command = [ sys.executable, "-m", "PyInstaller", "--noconfirm", "--clean", "--onefile", "--name", "multi_powercycle", "--collect-submodules", "redfish", str(ENTRYPOINT), ] try: subprocess.run(command, cwd=REPO_ROOT, check=True) except subprocess.CalledProcessError as exc: raise SystemExit(exc.returncode) from exc output_name = "multi_powercycle.exe" if sys.platform.startswith("win") else "multi_powercycle" output_path = DIST_DIR / output_name print(f"Built executable: {output_path}") print("Build once on each target OS to get a native executable for that platform.") if __name__ == "__main__": main()