#!/bin/sh
set -e

REPO="maksymiliankarol/nexor-cli"
BINARY_NAME="nexor"
INSTALL_DIR="${NEXOR_INSTALL_DIR:-/usr/local/bin}"

fail() {
  echo "Error: $1" >&2
  exit 1
}

# Detect OS
OS="$(uname -s)"
case "$OS" in
  Darwin) OS="macos" ;;
  Linux) OS="linux" ;;
  *) fail "unsupported OS: $OS (this script supports macOS and Linux — for Windows, use install.ps1)" ;;
esac

# Detect architecture
ARCH="$(uname -m)"
case "$ARCH" in
  arm64|aarch64) ARCH="arm64" ;;
  x86_64|amd64) ARCH="x64" ;;
  *) fail "unsupported architecture: $ARCH" ;;
esac

ASSET_NAME="${BINARY_NAME}-${OS}-${ARCH}"

# Resolve latest release via GitHub API
echo "Resolving latest release..."
LATEST_URL=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" \
  | grep "\"browser_download_url\".*${ASSET_NAME}\"" \
  | sed -E 's/.*"browser_download_url": "([^"]+)".*/\1/')

if [ -z "$LATEST_URL" ]; then
  fail "could not find a release asset named '${ASSET_NAME}'. Check https://github.com/${REPO}/releases"
fi

echo "Downloading ${ASSET_NAME}..."
TMP_FILE=$(mktemp)
curl -fsSL "$LATEST_URL" -o "$TMP_FILE"
chmod +x "$TMP_FILE"

# Install (sudo only if the target dir isn't writable)
if [ -w "$INSTALL_DIR" ]; then
  mv "$TMP_FILE" "${INSTALL_DIR}/${BINARY_NAME}"
else
  echo "Installing to ${INSTALL_DIR} requires sudo..."
  sudo mv "$TMP_FILE" "${INSTALL_DIR}/${BINARY_NAME}"
fi

echo "✓ Installed ${BINARY_NAME} to ${INSTALL_DIR}/${BINARY_NAME}"
echo ""
echo "Run '${BINARY_NAME} --help' to get started."