#!/bin/sh
set -eu

CONTENTS_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd -P)
case "$(uname -m)" in
    arm64|aarch64)
        JAVA="$CONTENTS_DIR/runtime-arm64/bin/java"
        ;;
    x86_64|amd64)
        JAVA="$CONTENTS_DIR/runtime-x64/bin/java"
        ;;
    *)
        osascript -e 'display alert "Kryptic cannot start" message "This Mac processor is not supported." as critical'
        exit 1
        ;;
esac

KRYPTIC_HOME=${HOME:?}/Library/Application Support/Kryptic
CLIENT_JAR=$KRYPTIC_HOME/Kryptic-Public.jar
SEED_JAR=$CONTENTS_DIR/app/Kryptic-Public.jar
LAUNCHER_JAR=$CONTENTS_DIR/app/Kryptic-Launcher.jar

mkdir -p -- "$KRYPTIC_HOME"
if [ ! -f "$CLIENT_JAR" ]; then
    TEMP_JAR=$KRYPTIC_HOME/.Kryptic-Public.jar.seed-$$
    trap 'rm -f -- "$TEMP_JAR"' EXIT HUP INT TERM
    cp -- "$SEED_JAR" "$TEMP_JAR"
    chmod 0600 "$TEMP_JAR"
    mv -f -- "$TEMP_JAR" "$CLIENT_JAR"
    trap - EXIT HUP INT TERM
fi

exec "$JAVA" \
    -Xdock:name=Kryptic \
    -Xdock:icon="$CONTENTS_DIR/Resources/Kryptic.icns" \
    -Dkryptic.home="$KRYPTIC_HOME" \
    -Dkryptic.java="$JAVA" \
    -Dkryptic.dock.icon="$CONTENTS_DIR/Resources/Kryptic.icns" \
    -jar "$LAUNCHER_JAR" "$@"
