#!/usr/bin/env bash
set -Eeuo pipefail

echo "Atomic Dawn 1 installer (App ZIP)"

[[ "$(uname)" == "Darwin" ]] || { echo "macOS only (Apple Silicon)"; exit 1; }
[[ "${EUID:-$(id -u)}" -ne 0 ]] || { echo "Do not run as root"; exit 1; }

BASE="https://d295zhqh37k3dk.cloudfront.net/atomic-dawn"
APP="Atomic Dawn 1.app"

TMP=$(mktemp -d "${TMPDIR:-/tmp}/atomic-dawn-install.XXXXXX")
trap 'rm -rf -- "$TMP"' EXIT

json_get() {
  grep -o "\"$2\"[[:space:]]*:[[:space:]]*\"[^\"]*\"" "$1" \
    | head -1 | sed 's/.*:[[:space:]]*"//; s/"$//'
}

echo "Resolving latest version..."
curl -fsSL "$BASE/macos-version.json" -o "$TMP/version.json" \
  || { echo "Could not reach $BASE/macos-version.json"; exit 1; }

VER="$(json_get "$TMP/version.json" latest)"
ZIP="$(json_get "$TMP/version.json" zip)"
WANT_SHA="$(json_get "$TMP/version.json" sha256)"
ZIP_URL="$(json_get "$TMP/version.json" url)"

[[ -n "$VER" && -n "$ZIP" ]] || { echo "Malformed macos-version.json"; exit 1; }
[[ ${#WANT_SHA} -eq 64 ]] || { echo "macos-version.json is missing a valid sha256 — refusing to install."; exit 1; }
echo "Latest is $VER"

echo "Downloading ${ZIP} (~600 MB)..."
if [[ -n "$ZIP_URL" ]]; then
  curl --progress-bar -fL "$ZIP_URL" -o "$TMP/atomic-dawn.zip" \
    || curl --progress-bar -fL "https://github.com/ilikemacos/cinder-vale/releases/download/atomic-dawn-macos-1.0.0/${ZIP}" -o "$TMP/atomic-dawn.zip"
else
  curl --progress-bar -fL "https://github.com/ilikemacos/cinder-vale/releases/download/atomic-dawn-macos-1.0.0/${ZIP}" -o "$TMP/atomic-dawn.zip"
fi

GOT_SHA="$(shasum -a 256 "$TMP/atomic-dawn.zip" | awk '{print $1}')"
if [[ "$GOT_SHA" != "$WANT_SHA" ]]; then
  echo "Checksum mismatch - refusing to install."
  echo "  expected $WANT_SHA"
  echo "  got      $GOT_SHA"
  exit 1
fi
echo "Checksum verified."

unzip -qo "$TMP/atomic-dawn.zip" -d "$TMP/out"
APP_SRC=""
if [[ -d "${TMP}/out/${APP}" ]]; then
  APP_SRC="${TMP}/out/${APP}"
elif [[ -d "${TMP}/out/Atomic Dawn 1/${APP}" ]]; then
  APP_SRC="${TMP}/out/Atomic Dawn 1/${APP}"
else
  APP_SRC="$(find "$TMP/out" -maxdepth 3 -name "$APP" -type d | head -1 || true)"
fi
[[ -n "$APP_SRC" && -d "$APP_SRC" ]] || { echo "Archive did not contain $APP"; exit 1; }

mkdir -p "$HOME/Applications"
rm -rf "$HOME/Applications/${APP:?}"
ditto "$APP_SRC" "${HOME}/Applications/${APP}"
xattr -cr "${HOME}/Applications/${APP}" 2>/dev/null || true

echo "Installed $VER to ~/Applications/$APP"
open "${HOME}/Applications/${APP}"
