32d027fcc9
Co-authored-by: Copilot <copilot@github.com>
41 lines
1001 B
Python
41 lines
1001 B
Python
#!/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()
|