#!/bin/sh
set -eu

SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
PROJECT_DIR=$(dirname "$SCRIPT_DIR")
ASSET_DIR="$PROJECT_DIR/macos/App/Assets"
OUTPUT_DIR="$PROJECT_DIR/macos/.build/generated-icons"
ICON_TEMP_DIR=$(mktemp -d /private/tmp/datatest-icons.XXXXXX)
trap 'rm -rf "$ICON_TEMP_DIR"' EXIT

generate_icon() {
    source_png=$1
    icon_name=$2
    iconset_dir="$ICON_TEMP_DIR/$icon_name.iconset"
    mkdir -p "$iconset_dir"

    sips -z 16 16 "$source_png" --out "$iconset_dir/icon_16x16.png" >/dev/null
    sips -z 32 32 "$source_png" --out "$iconset_dir/icon_16x16@2x.png" >/dev/null
    sips -z 32 32 "$source_png" --out "$iconset_dir/icon_32x32.png" >/dev/null
    sips -z 64 64 "$source_png" --out "$iconset_dir/icon_32x32@2x.png" >/dev/null
    sips -z 128 128 "$source_png" --out "$iconset_dir/icon_128x128.png" >/dev/null
    sips -z 256 256 "$source_png" --out "$iconset_dir/icon_128x128@2x.png" >/dev/null
    sips -z 256 256 "$source_png" --out "$iconset_dir/icon_256x256.png" >/dev/null
    sips -z 512 512 "$source_png" --out "$iconset_dir/icon_256x256@2x.png" >/dev/null
    sips -z 512 512 "$source_png" --out "$iconset_dir/icon_512x512.png" >/dev/null
    sips -z 1024 1024 "$source_png" --out "$iconset_dir/icon_512x512@2x.png" >/dev/null
    if ! iconutil --convert icns "$iconset_dir" --output "$ICON_TEMP_DIR/$icon_name.icns" >/dev/null 2>&1; then
        python3 "$SCRIPT_DIR/png-to-icns" "$iconset_dir" "$ICON_TEMP_DIR/$icon_name.icns"
    fi
    ditto --noextattr --noqtn "$ICON_TEMP_DIR/$icon_name.icns" "$OUTPUT_DIR/$icon_name.icns"
}

mkdir -p "$OUTPUT_DIR"
generate_icon "$ASSET_DIR/DataTestIcon-Light.png" "DataTestIcon"
generate_icon "$ASSET_DIR/DataTestIcon-Dark.png" "DataTestIcon-Dark"
