#!/usr/bin/env sh
set -eu

pull_url='https://dl.mimir.broz.uk/bootstrap/releases/20260928T101000Z-nats-client-v1/pull.sh'
pull_sha256='7c3c9feaa94ab79eccddb6aa154c9434823c8debb6bf8d23a11c55b6c893cd98'
install_tmp_root=/tmp
kernel_release="$(uname -r 2>/dev/null | tr '[:upper:]' '[:lower:]' || true)"
case "$kernel_release" in
  *microsoft*|*wsl*)
    if [ -d /mnt/e ] && [ -w /mnt/e ]; then
      install_tmp_root=/mnt/e/mim-runtime/bootstrap/tmp
      mkdir -p "$install_tmp_root"
    fi
    ;;
esac
work="$(mktemp -d "$install_tmp_root/mimir-install.XXXXXX")"
pull="$work/pull.sh"

cleanup() {
  find "$work" -depth -mindepth 1 -delete 2>/dev/null || true
  rmdir "$work" 2>/dev/null || true
}
trap cleanup EXIT INT TERM

if curl --version >/dev/null 2>&1; then
  curl -fsSL "$pull_url" -o "$pull"
elif command -v wget >/dev/null 2>&1; then
  wget -qO "$pull" "$pull_url"
elif command -v python3 >/dev/null 2>&1; then
  python3 - "$pull_url" "$pull" <<'PY'
import sys
import urllib.request
urllib.request.urlretrieve(sys.argv[1], sys.argv[2])
PY
else
  echo "no working downloader: need curl, wget, or python3" >&2
  exit 1
fi
printf '%s  %s\n' "$pull_sha256" "$pull" | sha256sum -c -

if [ "$(id -u)" -eq 0 ]; then
  MIM_NODE_NAME="${MIM_NODE_NAME:-${NODE:-}}" \
  MIM_REGION="${MIM_REGION:-${REGION:-}}" \
  MIM_NODE_ROLE="${MIM_NODE_ROLE:-worker}" \
  MIM_NODE_RENAME="${MIM_NODE_RENAME:-}" \
  MIM_RESET_CLIENT_ID="${MIM_RESET_CLIENT_ID:-}" \
  MIM_PREVIOUS_NODE_NAME="${MIM_PREVIOUS_NODE_NAME:-}" \
  MIM_BOOTSTRAP_FOOTPRINT_ONLY="${MIM_BOOTSTRAP_FOOTPRINT_ONLY:-}" \
  MIM_BOOTSTRAP_IDENTITY_ONLY="${MIM_BOOTSTRAP_IDENTITY_ONLY:-}" \
  MIM_BOOTSTRAP_STORAGE_ROOT="${MIM_BOOTSTRAP_STORAGE_ROOT:-}" \
    sh "$pull"
else
  command -v sudo >/dev/null 2>&1 || {
    echo "sudo is required when the installer is not run as root" >&2
    exit 1
  }
  sudo env \
    MIM_NODE_NAME="${MIM_NODE_NAME:-${NODE:-}}" \
    MIM_REGION="${MIM_REGION:-${REGION:-}}" \
    MIM_NODE_ROLE="${MIM_NODE_ROLE:-worker}" \
    MIM_NODE_RENAME="${MIM_NODE_RENAME:-}" \
    MIM_RESET_CLIENT_ID="${MIM_RESET_CLIENT_ID:-}" \
    MIM_PREVIOUS_NODE_NAME="${MIM_PREVIOUS_NODE_NAME:-}" \
    MIM_BOOTSTRAP_FOOTPRINT_ONLY="${MIM_BOOTSTRAP_FOOTPRINT_ONLY:-}" \
    MIM_BOOTSTRAP_IDENTITY_ONLY="${MIM_BOOTSTRAP_IDENTITY_ONLY:-}" \
    MIM_BOOTSTRAP_STORAGE_ROOT="${MIM_BOOTSTRAP_STORAGE_ROOT:-}" \
    sh "$pull"
fi
