#!/bin/bash
set -u
echo "Obsidian MCP Quick Tunnel を準備します..."
ARCH="$(uname -m)"
DEST="$HOME/.obsidian-mcp-tunnel"
mkdir -p "$DEST"
cd "$DEST"

if [[ "$ARCH" == "arm64" ]]; then
  TGZ_URL="https://github.com/cloudflare/cloudflared/releases/download/2026.9.3/cloudflared-darwin-arm64.tgz"
else
  TGZ_URL="https://github.com/cloudflare/cloudflared/releases/download/2026.9.3/cloudflared-darwin-amd64.tgz"
fi

if [[ ! -x "$DEST/cloudflared" ]]; then
  echo "cloudflared をダウンロードしています..."
  curl -L --fail --silent --show-error -o cloudflared.tgz "$TGZ_URL"
  tar -xzf cloudflared.tgz
  chmod +x cloudflared
  rm -f cloudflared.tgz
fi

if ! curl -sf -o /dev/null --max-time 3 "http://127.0.0.1:27124/"; then
  echo "Obsidian の REST/MCP サーバーに接続できません。"
  echo "Obsidian を開いたまま、プラグイン REST and MCP server を有効にしてください。"
  exit 1
fi

echo "Quick Tunnel を起動します。このウィンドウは閉じないでください。"
"$DEST/cloudflared" tunnel --url "http://127.0.0.1:27124" --no-autoupdate 2>&1 | while IFS= read -r line; do
  echo "$line"
  URL="$(printf '%s\n' "$line" | grep -Eo 'https://[a-zA-Z0-9.-]+\.trycloudflare\.com' | head -n 1 || true)"
  if [[ -n "${URL}" ]]; then
    echo "TUNNEL_URL=$URL"
    curl -sS -X POST "https://obsidian-mcp.syokutokenko.com/tunnel-url" \
      -H "Authorization: Bearer AwlonehzCb2vpqO1AKyzYS5FgRRfJo5UTUUysupSFT4" \
      -H "Content-Type: text/plain" \
      --data-binary "$URL" >/dev/null || true
  fi
done
