-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·141 lines (123 loc) · 4.82 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·141 lines (123 loc) · 4.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/lib/common.sh"
set -e
if [[ -d "/workspace/.devcontainer" ]]; then
WORKSPACE_ROOT="/workspace"
else
WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
fi
echo "🚀 OpenCode ECC DevContainer 基盤セットアップ開始..."
# 1. 環境変数検証(セキュリティチェック)
echo "🔐 環境変数セキュリティチェック実行中..."
"$SCRIPT_DIR/env-validator.sh"
# 2. 基盤セットアップチェック
SETUP_COMPLETE_FILE="$WORKSPACE_ROOT/.devcontainer/.setup-complete"
if [[ ! -f "$SETUP_COMPLETE_FILE" ]]; then
if is_ci_mode; then
echo "ℹ️ CIモードのため対話セットアップをスキップします"
touch "$SETUP_COMPLETE_FILE"
else
echo ""
echo "🎯 初回セットアップが未完了です"
echo "💡 Tailscale中心の基盤セットアップを実行することを推奨します"
echo ""
echo -e "\033[0;36m基盤セットアップを実行しますか? (Y/n): \033[0m"
read -r RUN_INTERACTIVE
if [[ ! "$RUN_INTERACTIVE" =~ ^[Nn]$ ]]; then
echo "🚀 基盤セットアップを開始します..."
SKIP_EXISTING_KEY_UPDATE_PROMPT=1 "$SCRIPT_DIR/interactive-setup.sh"
else
echo "⚠️ 基盤セットアップをスキップしました"
echo " 後で手動実行する場合: .devcontainer/interactive-setup.sh"
fi
fi
else
echo "✅ 基盤セットアップは既に完了済みです"
fi
# 環境変数の読み込み
if [ -f "$WORKSPACE_ROOT/.env" ]; then
echo "📂 .env ファイルを読み込み中..."
load_env_file "$WORKSPACE_ROOT/.env"
fi
# OpenCode/OpenChamber/ECC の確認・インストール
echo "🛠️ OpenCode CLI セットアップ..."
declare -a INSTALL_PIDS=()
declare -a INSTALL_NAMES=()
if ! command -v opencode &> /dev/null; then
echo " OpenCode CLI をインストール中..."
npm install -g opencode-ai &
INSTALL_PIDS+=("$!")
INSTALL_NAMES+=("OpenCode CLI")
else
echo " ✅ OpenCode CLI 既にインストール済み: $(opencode --version)"
fi
echo "🌐 OpenChamber セットアップ..."
if ! command -v openchamber &> /dev/null; then
echo " OpenChamber をインストール中..."
npm install -g @openchamber/web &
INSTALL_PIDS+=("$!")
INSTALL_NAMES+=("OpenChamber")
else
echo " ✅ OpenChamber 既にインストール済み"
fi
echo "🎯 ECC (Everything Claude Code) セットアップ..."
if ! command -v ecc &> /dev/null; then
echo " ECC をインストール中..."
npm install -g ecc-universal &
INSTALL_PIDS+=("$!")
INSTALL_NAMES+=("ECC")
fi
if [ ${#INSTALL_PIDS[@]} -gt 0 ]; then
echo " ⏳ 依存ツールのインストール完了待機中..."
for i in "${!INSTALL_PIDS[@]}"; do
if ! wait "${INSTALL_PIDS[$i]}"; then
echo " ❌ ${INSTALL_NAMES[$i]} のインストールに失敗しました"
exit 1
fi
done
fi
# ECC の設定適用
echo " ECC設定を適用中..."
# .opencode ディレクトリ権限修正(EACCES エラー対策)
echo " 🔒 .opencode ディレクトリ権限設定中..."
mkdir -p ~/.opencode ~/.opencode/.agents ~/.opencode/.agents/skills
sudo chown -R vscode:vscode ~/.opencode 2>/dev/null || chown -R vscode:vscode ~/.opencode 2>/dev/null || true
chmod -R 755 ~/.opencode 2>/dev/null || true
# ajv 依存関係エラー修正(既知の問題)
echo " 🔧 ajv 依存関係修正中..."
ECC_DIR="$(npm root -g 2>/dev/null)/ecc-universal"
if [[ -d "$ECC_DIR" ]]; then
cd "$ECC_DIR"
echo " ECCディレクトリ: $(pwd)"
npm install ajv 2>/dev/null || echo " ajv インストール試行"
cd - > /dev/null
fi
# ECC設定適用(ajv修正後)
ecc install --target opencode --profile ${ECC_PROFILE:-developer} || {
echo " ⚠️ ECC初回インストール失敗 - 依存関係修正後再試行"
# グローバル ajv インストール(フォールバック)
npm install -g ajv 2>/dev/null || true
# 再試行
ecc install --target opencode --profile ${ECC_PROFILE:-developer} || echo " ℹ️ ECCは後で手動設定できます"
}
# OpenCode設定ファイルの作成
echo "📝 OpenCode設定ファイル作成..."
cat > ~/.opencode/opencode.json << 'EOF'
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-5",
"small_model": "anthropic/claude-haiku-4-5",
"default_agent": "build",
"plugin": [
"./plugins"
]
}
EOF
echo "✅ セットアップ完了!"
echo ""
echo "📱 次のステップ:"
echo "1. 必要なら .devcontainer/interactive-setup.sh でTailscale設定"
echo "2. http://localhost:3000 でOpenChamberにアクセス"
echo "3. OpenCode API: http://localhost:4095"