#!/usr/bin/env bash
# Создать SSH-ключ для туннеля на Windows и добавить публичный ключ на прокси.
# Запускать на машине, с которой ЕСТЬ доступ к 149.154.64.19 (например Mac).
# Приватный ключ остаётся в windows-proxy-key/ — скопировать на Windows в %USERPROFILE%\.ssh\id_ed25519
set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
KEY_DIR="${SCRIPT_DIR}/windows-proxy-key"
KEY_FILE="${KEY_DIR}/id_ed25519"
PROXY_HOST="${CURSOR_TUNNEL_HOST:-hsites-ahau}"

echo "=== Ключ для туннеля на Windows (только туннелирование, прав на сервере не нужно) ==="
echo "  Прокси: $PROXY_HOST (149.154.64.19)"
echo ""

mkdir -p "$KEY_DIR"
chmod 700 "$KEY_DIR"

if [[ -f "$KEY_FILE" ]]; then
  echo "Ключ уже есть: $KEY_FILE"
  echo "Публичный ключ на сервере уже добавлен (если скрипт выполнялся до конца)."
  echo ""
  echo "Скопируйте на Windows один файл (приватный ключ):"
  echo "  Источник:  $KEY_FILE"
  echo "  На Windows: %USERPROFILE%\\.ssh\\id_ed25519"
  echo ""
  exit 0
fi

echo "Создаю ключ в $KEY_DIR ..."
ssh-keygen -t ed25519 -f "$KEY_FILE" -N "" -C "windows-proxy-tunnel"

echo ""
echo "Добавляю публичный ключ на сервер $PROXY_HOST ..."
cat "${KEY_FILE}.pub" | ssh "$PROXY_HOST" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
echo "[OK] Публичный ключ добавлен в ~/.ssh/authorized_keys на сервере."

echo ""
echo "Проверка подключения с этим ключом..."
ssh -i "$KEY_FILE" -o BatchMode=yes -o ConnectTimeout=10 "$PROXY_HOST" "echo OK" || { echo "Проверка не удалась."; exit 1; }
echo "[OK] Подключение работает."
echo ""
echo "--- Что сделать дальше ---"
echo "1. Скопировать на Windows ОДИН файл (приватный ключ, никому не передавать):"
echo "     $KEY_FILE"
echo "   На Windows положить в:  %USERPROFILE%\\.ssh\\id_ed25519"
echo "   (папку .ssh создать, если нет.)"
echo ""
echo "2. На Windows запустить туннель: см. docs/connectivity/WINDOWS_CURSOR_TUNNEL.md"
echo "   или: ssh -D 10809 -o ServerAliveInterval=30 -o ServerAliveCountMax=6 ahau@149.154.64.19"
echo ""
