jasper/util/scripts/pkg-dmg.py
Gary Talent e2ca6389a9 Squashed 'deps/nostalgia/' changes from 0de428a2..00e52b64
00e52b64 [nostalgia] Make pkg-dmg more versatile
ae404879 [nostalgia/gfx] Add navigateTo handler to TileSheetEditor
84b612c6 [studio/modlib] Give navigateTo a default argument
3c2a6b04 [studio/applib] Make navigateTo handle UUID paths
626da322 [ox/std] Add StringParam(IString const&) constructor

git-subtree-dir: deps/nostalgia
git-subtree-split: 00e52b649141b3daffd9a10b0320b142499c536f
2025-05-15 22:27:30 -05:00

40 lines
871 B
Python
Executable File

#! /usr/bin/env python3
import os
import shutil
import subprocess
import sys
target_name = sys.argv[1]
def rm(path: str):
file_exists = os.path.exists(path)
is_link = os.path.islink(path)
is_dir = os.path.isdir(path)
if (file_exists or is_link) and not is_dir:
os.remove(path)
elif os.path.isdir(path):
shutil.rmtree(path)
def mkdir_p(path: str):
if not os.path.exists(path):
os.mkdir(path)
def run(args: list[str]):
if subprocess.run(args).returncode != 0:
sys.exit(1)
dmg_dir = f'dist/darwin-arm64-release/{target_name}'
dmg = f'{dmg_dir}.dmg'
rm(dmg)
rm(dmg_dir)
mkdir_p(dmg_dir)
shutil.copytree(f'dist/darwin-arm64-release/{target_name}.app', f'{dmg_dir}/{target_name}.app')
os.symlink('/Applications', f'{dmg_dir}/Applications')
run(['hdiutil', 'create', '-srcfolder', dmg_dir, dmg])
rm(dmg_dir)