#! /usr/bin/env python3 import os import shutil import subprocess import sys 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 = 'dist/darwin-arm64-release/NostalgiaStudio' dmg = f'{dmg_dir}.dmg' rm(dmg) rm(dmg_dir) mkdir_p(dmg_dir) shutil.copytree('dist/darwin-arm64-release/NostalgiaStudio.app', f'{dmg_dir}/NostalgiaStudio.app') os.symlink('/Applications', f'{dmg_dir}/Applications') run(['hdiutil', 'create', '-srcfolder', dmg_dir, dmg])