#!/bin/sh
# Nool CLI Unified Installer
# Usage: curl -fsSL https://nool.dev/nool-install.sh | bash

set -e

VERSION="3.2.0"

# Detect OS
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"

if [ "$OS" != "darwin" ]; then
    printf "error: %s\n" "Unsupported OS: $OS. This installer currently publishes the macOS arm64 build only." >&2
    exit 1
fi

if [ "$ARCH" != "arm64" ]; then
    printf "error: %s\n" "Unsupported architecture: $ARCH" >&2
    exit 1
fi

FILE="nool-${VERSION}-aarch64-apple-darwin.tar.gz"

INSTALL_DIR="$HOME/.local/bin"
mkdir -p "$INSTALL_DIR"
TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/nool-install.XXXXXX")"

trap 'rm -rf "$TMP_DIR"' EXIT

if ! command -v shasum >/dev/null 2>&1; then
    printf "error: %s\n" "Missing required tool: shasum" >&2
    exit 1
fi

printf "==> %s\n" "Downloading Nool CLI..."
ARCHIVE_PATH="$TMP_DIR/$FILE"
CHECKSUM_PATH="$ARCHIVE_PATH.sha256"
curl -L "https://nool.dev/$FILE" -o "$ARCHIVE_PATH"
curl -L "https://nool.dev/$FILE.sha256" -o "$CHECKSUM_PATH"

printf "==> %s\n" "Verifying archive..."
EXPECTED_SUM="$(tr -d '[:space:]' < "$CHECKSUM_PATH")"
ACTUAL_SUM="$(shasum -a 256 "$ARCHIVE_PATH" | awk '{print $1}')"

if [ "$EXPECTED_SUM" != "$ACTUAL_SUM" ]; then
    printf "error: %s\n" "Checksum verification failed for $FILE" >&2
    exit 1
fi

printf "==> %s\n" "Installing..."
tar -xzmf "$ARCHIVE_PATH" -C "$TMP_DIR"

if [ ! -f "$TMP_DIR/nool" ]; then
    printf "error: %s\n" "Archive did not contain a 'nool' binary." >&2
    exit 1
fi

chmod +x "$TMP_DIR/nool"
mv "$TMP_DIR/nool" "$INSTALL_DIR/nool"

printf "%s\n" "Nool CLI installed successfully!"
printf "==> %s\n" "Ensure $INSTALL_DIR is in your PATH."
