#!/usr/bin/env python3 import subprocess import sys from pathlib import Path SCRIPT_DIR = Path(__file__).resolve().parent ENTRYPOINT = SCRIPT_DIR / "multi_powercycle.py" DIST_DIR = SCRIPT_DIR / "dist" def main(): command = [ sys.executable, "-m", "PyInstaller", "--noconfirm", "--clean", "--onefile", "--name", "multi_powercycle", "--collect-submodules", "redfish", str(ENTRYPOINT), ] try: subprocess.run(command, cwd=SCRIPT_DIR, 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()