#!/bin/sh
# Claude Code ステータスライン インストーラ
# 使い方: curl -fsSL https://takicoach-statusline.pages.dev/install.sh | sh
#
# やること:
#   1. 依存コマンド (curl / jq / python3) の確認
#   2. ~/.claude/statusline-command.sh をダウンロードして実行権限を付与
#   3. ~/.claude/settings.json に statusLine 設定を追記（既存ファイルはバックアップ）
set -e

BASE_URL="https://takicoach-statusline.pages.dev"
CLAUDE_DIR="$HOME/.claude"
SETTINGS="$CLAUDE_DIR/settings.json"
SCRIPT="$CLAUDE_DIR/statusline-command.sh"
STAMP=$(date +%Y%m%d%H%M%S)

echo "== Claude Code ステータスライン セットアップ =="

# 1. 依存チェック
missing=""
for cmd in curl jq python3; do
  command -v "$cmd" >/dev/null 2>&1 || missing="$missing $cmd"
done
if [ -n "$missing" ]; then
  echo "エラー: 次のコマンドが見つかりません:$missing"
  echo "Homebrew の場合: brew install$missing"
  exit 1
fi

case "$(uname)" in
  Darwin) ;;
  *) echo "注意: macOS 以外では 3行目の Fable 使用率は「-」表示になります（1〜2行目は動作します）" ;;
esac

mkdir -p "$CLAUDE_DIR"

# 2. スクリプト本体を配置（既存があればバックアップ）
if [ -f "$SCRIPT" ]; then
  cp "$SCRIPT" "$SCRIPT.bak.$STAMP"
  echo "既存スクリプトをバックアップ: $SCRIPT.bak.$STAMP"
fi
curl -fsSL "$BASE_URL/statusline-command.sh" -o "$SCRIPT"
chmod +x "$SCRIPT"
echo "配置完了: $SCRIPT"

# 3. settings.json に statusLine を設定
if [ -f "$SETTINGS" ]; then
  cp "$SETTINGS" "$SETTINGS.bak.$STAMP"
  echo "settings.json をバックアップ: $SETTINGS.bak.$STAMP"
  tmp=$(mktemp)
  jq --arg cmd "bash $SCRIPT" '.statusLine = {"type": "command", "command": $cmd}' "$SETTINGS" > "$tmp"
  mv "$tmp" "$SETTINGS"
else
  printf '{\n  "statusLine": {\n    "type": "command",\n    "command": "bash %s"\n  }\n}\n' "$SCRIPT" > "$SETTINGS"
fi
echo "設定完了: $SETTINGS"

echo ""
echo "== 完了 =="
echo "Claude Code を再起動（または新しいセッションを開始）すると、画面下部に3行のステータスラインが表示されます。"
