#!/bin/sh
# NAOMI Cloud — установка клиента одной командой:
#   curl -fsSL https://naomicloud.ru/install.sh | sh
# Ставит приложение в ~/naomi-cloud и запускает веб-интерфейс (откроется браузер).
# Переменные окружения: NAOMI_DIR (куда ставить), NAOMI_NO_START=1 (не запускать после установки).
# POSIX sh — работает и через sh, и через bash.
set -eu

DIST_URL="https://naomicloud.ru/dist/naomi-latest.tgz"
DEST="${NAOMI_DIR:-$HOME/naomi-cloud}"

echo "── NAOMI Cloud · установка клиента ──────────────"

# ── 1. Node.js ≥ 20 ──
need_node() {
  echo "✗ Node.js не найден или старше 20-й версии."
  echo "  Установи Node.js 22+ с https://nodejs.org (или: sudo apt install -y nodejs)"
  echo "  и повтори установку."
  exit 1
}
if command -v node >/dev/null 2>&1; then
  NODE_MAJOR="$(node -p 'process.versions.node.split(".")[0]')"
  [ "$NODE_MAJOR" -ge 20 ] || need_node
else
  # пробуем поставить через NodeSource (нужен sudo); не вышло — подскажем руками
  echo "· Node.js не найден, пробую установить (нужен sudo)…"
  if command -v sudo >/dev/null 2>&1 && command -v curl >/dev/null 2>&1; then
    if curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -n bash - >/dev/null 2>&1 \
       && sudo -n apt-get install -y -qq nodejs >/dev/null 2>&1; then
      echo "✓ Node.js $(node -v) установлен"
    else
      need_node
    fi
  else
    need_node
  fi
fi

# ── 2. Скачиваем и распаковываем ──
echo "· Скачиваю NAOMI…"
mkdir -p "$DEST"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
curl -fsSL "$DIST_URL" -o "$TMP/naomi.tgz"
tar -xzf "$TMP/naomi.tgz" -C "$DEST" --strip-components=1

# ── 3. Зависимости ──
echo "· Устанавливаю зависимости (1-2 минуты)…"
cd "$DEST"
npm install --omit=dev --silent --no-fund --no-audit

# ── 4. Команда запуска ──
BIN_DIR="$HOME/.local/bin"
mkdir -p "$BIN_DIR"
cat > "$BIN_DIR/naomi" << EOF
#!/usr/bin/env bash
cd "$DEST"
exec node packages/app/bin/naomi.js "\$@"
EOF
chmod +x "$BIN_DIR/naomi"
case ":$PATH:" in
  *":$BIN_DIR:"*) ;;
  *) echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$HOME/.profile"
     echo "· Добавил $BIN_DIR в PATH (вступит в силу после перелогина)" ;;
esac

echo "✓ Установлено: $DEST"
echo "  Запуск:     naomi ui   (или $BIN_DIR/naomi ui)"
echo "──────────────────────────────────────────────────"

# ── 5. Стартуем ──
if [ -z "${NAOMI_NO_START:-}" ]; then
  echo "· Запускаю NAOMI — сейчас откроется браузер…"
  exec "$BIN_DIR/naomi" ui
fi
