Improve Xcode CLI Tools installation flow

- Add interactive waiting for Xcode CLI tools installation
- User can press Enter after installation completes to continue
- For non-interactive execution: auto-detect installation completion
- Add timeout protection (10 minutes max wait)
- Add retry mechanism with verification
- Better user guidance and progress feedback

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Astrian Zheng 2025-06-28 11:10:17 +10:00
parent faa6c58d90
commit 661d86d17a
Signed by: Astrian
SSH Key Fingerprint: SHA256:rVnhx3DAKjujCwWE13aDl7uV6+9U1MvydLkNRXJrBiA

View File

@ -59,8 +59,61 @@ install_xcode_tools() {
else else
print_message "📥 安装 Xcode Command Line Tools..." "$YELLOW" print_message "📥 安装 Xcode Command Line Tools..." "$YELLOW"
xcode-select --install xcode-select --install
print_message "⏳ 请在弹出的窗口中完成安装,然后重新运行此脚本" "$YELLOW"
exit 0 # 检测是否为交互式执行
if [[ -t 0 ]]; then
# 交互式执行 - 等待用户确认
print_message "⏳ Xcode Command Line Tools 安装进行中..." "$YELLOW"
print_message " 1. 请在弹出的对话框中点击 '安装'" "$YELLOW"
print_message " 2. 等待安装完成(通常需要几分钟)" "$YELLOW"
print_message " 3. 安装完成后按回车键继续..." "$YELLOW"
echo ""
# 等待用户确认安装完成
read -p "⚡ 安装完成后请按回车键继续..." -r
echo ""
else
# 非交互式执行 - 自动等待
print_message "⏳ 等待 Xcode Command Line Tools 安装完成..." "$YELLOW"
print_message " 正在自动检测安装状态..." "$YELLOW"
# 自动等待安装完成最多等待10分钟
local wait_count=0
while [[ $wait_count -lt 120 ]]; do
if xcode-select -p &>/dev/null; then
print_message "✅ Xcode Command Line Tools 安装完成!" "$GREEN"
return 0
fi
sleep 5
((wait_count++))
if [[ $((wait_count % 12)) -eq 0 ]]; then
print_message " 仍在等待安装完成... ($((wait_count * 5 / 60))分钟)" "$YELLOW"
fi
done
print_message "❌ Xcode Command Line Tools 安装超时" "$RED"
print_message " 请手动完成安装后重新运行脚本" "$RED"
exit 1
fi
# 再次验证安装是否成功
local retry_count=0
while [[ $retry_count -lt 3 ]]; do
if xcode-select -p &>/dev/null; then
print_message "✅ Xcode Command Line Tools 安装成功!" "$GREEN"
return 0
else
print_message "⚠️ 检测到 Xcode Command Line Tools 尚未安装完成" "$YELLOW"
read -p " 请等待安装完成后按回车键重试... " -r
echo ""
((retry_count++))
fi
done
# 如果多次重试仍未成功,提示用户
print_message "❌ Xcode Command Line Tools 安装验证失败" "$RED"
print_message " 请确保安装已完成或手动验证xcode-select -p" "$RED"
exit 1
fi fi
} }