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

BASE_URL="${RJ_CLI_BASE_URL:-https://rasmusjensing.com}"
INSTALL_DIR="${RJ_CLI_INSTALL_DIR:-$HOME/.local/bin}"
SKILL_DIR="${RJ_CLI_SKILL_DIR:-$HOME/.codex/skills/rasmusjensing-cli}"

OS="$(uname -s)"
ARCH="$(uname -m)"

case "$OS" in
  Darwin) OS_SLUG="darwin" ;;
  Linux) OS_SLUG="linux" ;;
  *)
    echo "Unsupported operating system: $OS" >&2
    exit 1
    ;;
esac

case "$ARCH" in
  arm64|aarch64) ARCH_SLUG="arm64" ;;
  x86_64|amd64) ARCH_SLUG="x64" ;;
  *)
    echo "Unsupported architecture: $ARCH" >&2
    exit 1
    ;;
esac

ASSET_NAME="rasmusjensing-${OS_SLUG}-${ARCH_SLUG}"
ASSET_URL="${BASE_URL}/downloads/${ASSET_NAME}"
TARGET_PATH="${INSTALL_DIR}/rasmusjensing"
ALIAS_PATH="${INSTALL_DIR}/rj-articles"
SKILL_URL="${BASE_URL}/skills/rasmusjensing-cli/SKILL.md"
SKILL_PATH="${SKILL_DIR}/SKILL.md"

mkdir -p "$INSTALL_DIR"

echo "Downloading ${ASSET_URL}..."
if ! curl -fsSL "$ASSET_URL" -o "$TARGET_PATH"; then
  echo "Could not download ${ASSET_URL}." >&2
  echo "Stage a ${ASSET_NAME} binary under public/downloads and deploy the site first." >&2
  exit 1
fi

chmod +x "$TARGET_PATH"

rm -f "$ALIAS_PATH"
if ! ln -s "rasmusjensing" "$ALIAS_PATH" 2>/dev/null; then
  cp "$TARGET_PATH" "$ALIAS_PATH"
fi

mkdir -p "$SKILL_DIR"
if curl -fsSL "$SKILL_URL" -o "$SKILL_PATH" 2>/dev/null; then
  echo "Installed Codex skill to ${SKILL_PATH}"
else
  echo "Skipped Codex skill install (skill file not published yet)."
fi

echo
echo "Installed rasmusjensing to ${TARGET_PATH}"
echo "Legacy alias available at ${ALIAS_PATH}"
echo
echo "Try:"
echo "  rasmusjensing auth login"
echo "  rasmusjensing update"
