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

version="prototype-d61d753"
base_url="https://install.prokube.cloud/releases/${version}"

case "$(uname -s)" in
  Linux) os="linux" ;;
  Darwin) os="darwin" ;;
  *)
    echo "Unsupported operating system: $(uname -s)" >&2
    exit 1
    ;;
esac

case "$(uname -m)" in
  x86_64 | amd64) arch="amd64" ;;
  arm64 | aarch64) arch="arm64" ;;
  *)
    echo "Unsupported architecture: $(uname -m)" >&2
    exit 1
    ;;
esac

artifact="prokube-${os}-${arch}"
case "$artifact" in
  prokube-darwin-amd64) checksum="e0b59930fd2015f392e03275aaadf5ce32de0f066cbaef3a5287e1d31767459d" ;;
  prokube-darwin-arm64) checksum="609509cc04df4f4af03c610c7489f41800cf0e4dd822b945105b6b69c3e4e78b" ;;
  prokube-linux-amd64) checksum="3cf70abc1f2bf082fb037ec1437738db6abbd44ff0330514d24e54bb4ca44781" ;;
  prokube-linux-arm64) checksum="ddf3639937206d33a742fd6eab2aa26c95239a9056df2a6f8ae23c62bfa710c9" ;;
esac

directory="$(mktemp -d)"
trap 'rm -rf "$directory"' EXIT
binary="${directory}/prokube"

echo "Downloading prokube.ai installer ${version} for ${os}/${arch}..."
curl --fail --silent --show-error --location \
  --proto '=https' --tlsv1.2 \
  "${base_url}/${artifact}" \
  --output "$binary"

actual=""
if command -v sha256sum >/dev/null 2>&1; then
  actual="$(sha256sum "$binary" | awk '{print $1}')"
elif command -v shasum >/dev/null 2>&1; then
  actual="$(shasum -a 256 "$binary" | awk '{print $1}')"
else
  echo "A SHA-256 tool (sha256sum or shasum) is required." >&2
  exit 1
fi
if [[ "$actual" != "$checksum" ]]; then
  echo "Installer checksum verification failed." >&2
  exit 1
fi

chmod 0700 "$binary"
echo "Checksum verified. Starting prokube setup..."
if [[ -r /dev/tty ]]; then
  "$binary" setup "$@" </dev/tty
else
  "$binary" setup "$@"
fi
