diff --git a/install.sh b/install.sh index b00149c..5d59f70 100755 --- a/install.sh +++ b/install.sh @@ -317,6 +317,54 @@ setup_aliases() { print_message "✅ 别名配置完成" "$GREEN" } +# 提示配置 1Password SSH Agent +prompt_1password_setup() { + print_message "🔐 配置 1Password SSH Agent..." "$BLUE" + + # 检查 1Password 是否已安装 + if [[ -d "/Applications/1Password 7 - Password Manager.app" ]] || [[ -d "/Applications/1Password.app" ]]; then + print_message "📱 检测到 1Password 已安装" "$GREEN" + + # 检测是否为交互式执行 + if [[ -t 0 ]]; then + # 交互式执行 - 提示用户配置 + print_message "⚠️ 为了克隆 nvim 配置,需要先设置 1Password SSH Agent" "$YELLOW" + print_message "" "$NC" + print_message "📋 请按以下步骤配置:" "$YELLOW" + print_message " 1. 打开 1Password 应用并登录" "$YELLOW" + print_message " 2. 进入 Settings > Developer" "$YELLOW" + print_message " 3. 启用 'Use the SSH agent'" "$YELLOW" + print_message " 4. 将你的 SSH 私钥添加到 1Password" "$YELLOW" + print_message " 5. 确保 SSH 密钥可以访问 git.nas.astrian.moe" "$YELLOW" + print_message "" "$NC" + + # 等待用户确认配置完成 + read -p "⚡ 1Password SSH Agent 配置完成后请按回车键继续..." -r + echo "" + + # 测试 SSH 连接 + print_message "🔍 测试 SSH 连接..." "$BLUE" + if ssh -T git@git.nas.astrian.moe -o ConnectTimeout=10 -o BatchMode=yes 2>/dev/null; then + print_message "✅ SSH 连接测试成功!" "$GREEN" + return 0 + else + print_message "⚠️ SSH 连接测试失败,但将继续执行" "$YELLOW" + print_message " 如果 nvim 配置克隆失败,请检查 SSH 配置" "$YELLOW" + fi + else + # 非交互式执行 - 自动尝试 + print_message "🔍 自动检测 SSH 连接状态..." "$YELLOW" + if ssh -T git@git.nas.astrian.moe -o ConnectTimeout=10 -o BatchMode=yes 2>/dev/null; then + print_message "✅ SSH 连接可用" "$GREEN" + else + print_message "⚠️ SSH 连接不可用,nvim 配置可能无法克隆" "$YELLOW" + fi + fi + else + print_message "⚠️ 未检测到 1Password,跳过 SSH Agent 配置" "$YELLOW" + fi +} + # 配置 Neovim setup_neovim() { print_message "⚙️ 配置 Neovim..." "$BLUE" @@ -332,7 +380,9 @@ setup_neovim() { if git clone git@git.nas.astrian.moe:Astrian/nvim-config.git ~/.config/nvim 2>/dev/null; then print_message "✅ Neovim 配置已应用!" "$GREEN" else - print_message "⚠️ 无法克隆 nvim 配置(SSH 密钥未配置)" "$YELLOW" + print_message "⚠️ 无法克隆 nvim 配置" "$YELLOW" + print_message " 请确保已正确配置 1Password SSH Agent" "$YELLOW" + print_message " 或手动执行:git clone git@git.nas.astrian.moe:Astrian/nvim-config.git ~/.config/nvim" "$YELLOW" fi fi } @@ -368,6 +418,7 @@ full_install() { install_node install_claude_code setup_aliases + prompt_1password_setup setup_neovim echo "" @@ -401,6 +452,7 @@ dev_only() { install_oh_my_zsh install_node install_claude_code + prompt_1password_setup setup_neovim print_message "✅ 开发环境配置完成!" "$GREEN" }