TRX/tools/shared/mac/create_installer
2025-01-25 16:47:56 +01:00

57 lines
1.4 KiB
Python
Executable file

#!/usr/bin/env python3
import argparse
import os
import subprocess
from pathlib import Path
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description=f"Create a DMG installer.")
parser.add_argument("-a", "--app-name")
parser.add_argument("-i", "--icon-path", type=Path)
return parser.parse_args()
def create_dmg(app_name: str, dmg_name: str, icon_path: Path, app_bundle_path: Path) -> None:
subprocess.run(
(
"create-dmg",
"--volname",
f"{app_name} Installer",
"--volicon",
str(icon_path),
"--window-pos",
"200",
"120",
"--window-size",
"800",
"400",
"--icon-size",
"100",
"--icon",
f"{app_name}.app",
"200",
"190",
"--hide-extension",
f"{app_name}.app",
"--app-drop-link",
"600",
"185",
str(dmg_name),
str(app_bundle_path),
)
)
def main() -> None:
args = parse_args()
dmg_name = Path(f"{args.app_name}-Installer.dmg")
if dmg_name.is_file():
dmg_name.unlink()
app_bundle_path = Path(f"/tmp/{args.app_name}.app")
create_dmg(args.app_name, dmg_name, args.icon_path, app_bundle_path)
if __name__ == "__main__":
main()