#!/bin/bash # Claude Code Advanced Setup Script # ターミナル環境との統合、AI連携、MCP設定を一括で行う set -e # カラー定義 GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # 設定 CLAUDE_DIR="$HOME/git/claude" BACKUP_DIR="$HOME/.claude-backup-$(date +%Y%m%d-%H%M%S)" echo -e "${BLUE}🤖 Claude Code Advanced Setup${NC}" echo -e "${BLUE}===============================${NC}" # バックアップ作成 create_backup() { echo -e "${GREEN}既存設定のバックアップを作成中...${NC}" mkdir -p "$BACKUP_DIR" # 既存の設定をバックアップ [[ -f ~/.zshrc ]] && cp ~/.zshrc "$BACKUP_DIR/" [[ -f ~/.claude/settings.json ]] && cp ~/.claude/settings.json "$BACKUP_DIR/" [[ -f ~/.claude/claude_desktop_config.json ]] && cp ~/.claude/claude_desktop_config.json "$BACKUP_DIR/" [[ -f ~/.tmux.conf ]] && cp ~/.tmux.conf "$BACKUP_DIR/" echo -e "${GREEN}✓ バックアップ完了: $BACKUP_DIR${NC}" } # 依存関係のインストール install_dependencies() { echo -e "${GREEN}依存関係をインストール中...${NC}" # OS検出 if [[ "$(uname)" == "Darwin" ]]; then # macOS if ! command -v brew &> /dev/null; then echo -e "${RED}Homebrewがインストールされていません${NC}" echo "https://brew.sh/ からインストールしてください" exit 1 fi brew install ripgrep fd bat exa tmux git nodejs npm elif [[ "$(uname)" == "Linux" ]]; then # Linux (Arch Linux想定) if command -v pacman &> /dev/null; then sudo pacman -S --noconfirm ripgrep fd bat exa tmux git nodejs npm elif command -v apt &> /dev/null; then sudo apt update sudo apt install -y ripgrep fd-find bat exa tmux git nodejs npm fi fi echo -e "${GREEN}✓ 依存関係のインストール完了${NC}" } # zsh設定 setup_zsh() { echo -e "${GREEN}zsh設定を構成中...${NC}" # .zshrcに追加 if ! grep -q "source.*zshrc_claude" ~/.zshrc 2>/dev/null; then echo "" >> ~/.zshrc echo "# Claude Code Enhanced Configuration" >> ~/.zshrc echo "source $CLAUDE_DIR/shell-config/.zshrc_claude" >> ~/.zshrc echo -e "${GREEN}✓ .zshrcに設定を追加しました${NC}" else echo -e "${YELLOW}既に.zshrcに設定があります${NC}" fi } # tmux設定 setup_tmux() { echo -e "${GREEN}tmux設定を構成中...${NC}" if [[ ! -f ~/.tmux.conf ]]; then cat > ~/.tmux.conf << 'EOF' # Claude Code tmux configuration # プレフィックスキーの変更 set -g prefix C-a unbind C-b bind C-a send-prefix # ペインの分割 bind | split-window -h bind - split-window -v # ペインの移動 bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # Claude Code専用のキーバインド bind C command-prompt -p "claude prompt:" "new-window 'claude \"%%\"'" bind c-r new-window "claude --resume" # ステータスラインの設定 set -g status-left '[#S] ' set -g status-right '%Y-%m-%d %H:%M' set -g window-status-current-style 'bg=green,fg=black' # マウスサポート set -g mouse on # 256色対応 set -g default-terminal "screen-256color" EOF echo -e "${GREEN}✓ tmux設定ファイルを作成しました${NC}" else echo -e "${YELLOW}既存のtmux設定があります${NC}" fi } # MCP設定 setup_mcp() { echo -e "${GREEN}MCP設定を構成中...${NC}" # MCPセットアップスクリプトを実行 chmod +x "$CLAUDE_DIR/mcp/setup-mcp.sh" bash "$CLAUDE_DIR/mcp/setup-mcp.sh" all echo -e "${GREEN}✓ MCP設定完了${NC}" } # AI統合設定 setup_ai_integration() { echo -e "${GREEN}AI統合機能を設定中...${NC}" # スクリプトに実行権限を付与 chmod +x "$CLAUDE_DIR/scripts/ai-integration.sh" # 必要なディレクトリを作成 mkdir -p "$HOME/claude-logs" mkdir -p "$HOME/chatgpt-logs" mkdir -p "$HOME/.ai-context" echo -e "${GREEN}✓ AI統合機能の設定完了${NC}" } # Claude Code設定 setup_claude_settings() { echo -e "${GREEN}Claude Code設定を構成中...${NC}" mkdir -p ~/.claude # settings.jsonの作成 cat > ~/.claude/settings.json << 'EOF' { "editor": "vim", "theme": "dark", "hooks": { "before_bash": "~/git/claude/scripts/safe-command-check.sh" }, "thinking": { "enabled": true, "depth": "normal" } } EOF echo -e "${GREEN}✓ Claude Code設定ファイルを作成しました${NC}" } # Vim統合設定 setup_vim() { echo -e "${GREEN}Vim統合設定を構成中...${NC}" # .vimrcに追加 if [[ -f ~/.vimrc ]]; then if ! grep -q "Claude Code" ~/.vimrc; then cat >> ~/.vimrc << 'EOF' " Claude Code integration nnoremap cc :!claude "このコードをレビューして: %" nnoremap ce :!claude "このエラーを解決して: %" nnoremap ct :!claude "このファイルのテストを作成して: %" vnoremap cs :w !claude "この部分を説明して" EOF echo -e "${GREEN}✓ Vim設定を追加しました${NC}" else echo -e "${YELLOW}既にVim設定があります${NC}" fi fi } # 権限設定 setup_permissions() { echo -e "${GREEN}実行権限を設定中...${NC}" # すべてのスクリプトに実行権限を付与 find "$CLAUDE_DIR/scripts" -name "*.sh" -exec chmod +x {} \; find "$CLAUDE_DIR/mcp" -name "*.sh" -exec chmod +x {} \; chmod +x "$CLAUDE_DIR/setup-advanced.sh" echo -e "${GREEN}✓ 権限設定完了${NC}" } # テスト実行 run_tests() { echo -e "${GREEN}設定をテスト中...${NC}" # 基本的な動作確認 echo "zsh設定テスト..." if source "$CLAUDE_DIR/shell-config/.zshrc_claude"; then echo -e "${GREEN}✓ zsh設定OK${NC}" else echo -e "${RED}✗ zsh設定エラー${NC}" fi echo -e "${GREEN}✓ テスト完了${NC}" } # 使用方法の表示 show_usage() { echo -e "${BLUE}使用方法:${NC}" echo " $0 all - 全ての設定を実行" echo " $0 deps - 依存関係のインストール" echo " $0 zsh - zsh設定" echo " $0 tmux - tmux設定" echo " $0 mcp - MCP設定" echo " $0 ai - AI統合設定" echo " $0 claude - Claude Code設定" echo " $0 vim - Vim統合設定" echo " $0 test - 設定テスト" echo " $0 help - このヘルプ" echo "" echo -e "${YELLOW}推奨: $0 all で全設定を実行${NC}" } # 完了メッセージ show_completion() { echo -e "${GREEN}🎉 Claude Code Advanced Setup完了!${NC}" echo "" echo -e "${BLUE}次の手順:${NC}" echo "1. ターミナルを再起動するか 'source ~/.zshrc' を実行" echo "2. 'claude-env' コマンドで環境をテスト" echo "3. 'ai-tmux' でClaude Code作業環境を起動" echo "4. '/user:help' でカスタムヘルプを確認" echo "" echo -e "${YELLOW}利用可能な新機能:${NC}" echo "- claude-analyze - ファイル解析" echo "- claude-review - コードレビュー" echo "- claude-test - テスト生成" echo "- ai-compare - 複数AI比較" echo "- ai-import - ChatGPT会話インポート" echo "- mcp-setup - MCP設定" echo "" echo -e "${GREEN}Happy coding with Claude Code! 🚀${NC}" } # メイン処理 case "$1" in all) create_backup install_dependencies setup_zsh setup_tmux setup_mcp setup_ai_integration setup_claude_settings setup_vim setup_permissions run_tests show_completion ;; deps) install_dependencies ;; zsh) setup_zsh ;; tmux) setup_tmux ;; mcp) setup_mcp ;; ai) setup_ai_integration ;; claude) setup_claude_settings ;; vim) setup_vim ;; test) run_tests ;; help|--help|-h) show_usage ;; *) show_usage exit 1 ;; esac