#!/bin/sh
# RuLegal MCP installer: writes or prints MCP client configuration.
#
#   curl -fsSL https://mcp-rulegacy.shedai.ru/install.sh | sh -s -- --key cpmcp_live_...
#   ... | sh -s -- --key ... --write          # actually modify configs
#
# Without --write nothing is changed: the script only prints what it would add.
set -eu

URL="https://mcp-rulegacy.shedai.ru/mcp"
KEY=""
WRITE=0
CLIENT=""

while [ $# -gt 0 ]; do
  case "$1" in
    --key) KEY="$2"; shift 2 ;;
    --key=*) KEY="${1#*=}"; shift ;;
    --write) WRITE=1; shift ;;
    --client) CLIENT="$2"; shift 2 ;;
    --client=*) CLIENT="${1#*=}"; shift ;;
    -h|--help)
      sed -n '2,10p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;;
    *) echo "unknown option: $1" >&2; exit 2 ;;
  esac
done

if [ -z "$KEY" ]; then
  printf 'Ключ: '
  read -r KEY
fi

case "$KEY" in
  cpmcp_live_*) : ;;
  *) echo "ключ должен начинаться с cpmcp_live_" >&2; exit 2 ;;
esac

have() { command -v "$1" >/dev/null 2>&1; }

echo "RuLegal MCP"
echo "  endpoint: $URL"
echo "  key:      ${KEY%????????????????}…"
echo

if have claude && { [ -z "$CLIENT" ] || [ "$CLIENT" = claude ]; }; then
  echo "[Claude Code]"
  if [ "$WRITE" = 1 ]; then
    claude mcp add --transport http rulegal "$URL" \
      --header "Authorization: Bearer $KEY" && echo "  добавлено"
  else
    echo "  claude mcp add --transport http rulegal $URL \\"
    echo "    --header \"Authorization: Bearer \$KEY\""
  fi
  echo
fi

if { [ -z "$CLIENT" ] || [ "$CLIENT" = codex ]; } && [ -d "$HOME/.codex" ]; then
  echo "[Codex CLI] ~/.codex/config.toml"
  cat <<EOF
  [mcp_servers.rulegal]
  url = "$URL"
  http_headers = { Authorization = "Bearer $KEY" }
  startup_timeout_sec = 20
EOF
  if [ "$WRITE" = 1 ]; then
    cp "$HOME/.codex/config.toml" "$HOME/.codex/config.toml.bak.$(date +%s)" 2>/dev/null || true
    cat >> "$HOME/.codex/config.toml" <<EOF

[mcp_servers.rulegal]
url = "$URL"
http_headers = { Authorization = "Bearer $KEY" }
startup_timeout_sec = 20
EOF
    echo "  дописано в конец файла"
  fi
  echo
fi

echo "[Универсальный JSON]"
cat <<EOF
{
  "mcpServers": {
    "rulegal": {
      "type": "http",
      "url": "$URL",
      "headers": { "Authorization": "Bearer $KEY" }
    }
  }
}
EOF
echo
echo "Проверка: curl -s -X POST $URL \\"
echo "  -H 'Authorization: Bearer \$KEY' -H 'Content-Type: application/json' \\"
echo "  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"server/discover\"}'"
echo
echo "Инструкции: https://mcp-rulegacy.shedai.ru/integrate"
