#!/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 / "power" / "ipmi_poweron.py"
DIST_DIR = REPO_ROOT / "dist"


def main():
    command = [
        sys.executable,
        "-m",
        "PyInstaller",
        "--noconfirm",
        "--clean",
        "--onefile",
        "--name",
        "ipmi_poweron",
        str(ENTRYPOINT),
    ]

    try:
        subprocess.run(command, cwd=REPO_ROOT, check=True)
    except subprocess.CalledProcessError as exc:
        raise SystemExit(exc.returncode) from exc

    output_name = "ipmi_poweron.exe" if sys.platform.startswith("win") else "ipmi_poweron"
    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()
