#! /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)
