diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index 0d39550..491d497 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -420,15 +420,26 @@ disable_auto_update() { while true; do echo log_warn "是否要禁用 Cursor 自动更新功能?" - echo "0) 否 - 保持默认设置 (按回车键)" + echo "0) 否 - 保持默认设置" echo "1) 是 - 禁用自动更新" echo "q) 退出" echo - echo -n "请选择 [0/1/q] (按回车键选择默认选项0): " - read -r choice + + # 确保等待用户输入 + printf "请选择 [0/1/q]: " + read -r choice < /dev/tty || true + + # 调试输出 + log_debug "收到的输入: '$choice'" + + # 如果输入为空,继续循环 + if [ -z "$choice" ]; then + log_error "未收到输入,请重试" + continue + fi case "$choice" in - ""|0) + 0) log_info "保持默认设置,不进行更改" return 0 ;; @@ -437,55 +448,23 @@ disable_auto_update() { log_info "正在处理自动更新..." local updater_path="$HOME/Library/Application Support/cursor-updater" - # 定义手动设置教程 - show_manual_guide() { + # 尝试自动执行 + if sudo rm -rf "$updater_path" && \ + sudo touch "$updater_path" && \ + sudo chmod 444 "$updater_path"; then + log_info "成功禁用自动更新" echo - log_warn "自动设置失败,请尝试手动操作:" - echo -e "${YELLOW}手动禁用更新步骤:${NC}" - echo "1. 打开终端(Terminal)" - echo "2. 复制粘贴以下命令:" - echo -e "${BLUE}rm -rf \"$updater_path\" && touch \"$updater_path\" && chmod 444 \"$updater_path\"${NC}" + log_info "验证方法:" + echo "运行命令:ls -l \"$updater_path\"" + echo "确认文件权限显示为:r--r--r--" + else + log_error "自动设置失败,请手动执行以下命令:" echo - echo -e "${YELLOW}如果上述命令提示权限不足,请使用 sudo:${NC}" echo -e "${BLUE}sudo rm -rf \"$updater_path\" && sudo touch \"$updater_path\" && sudo chmod 444 \"$updater_path\"${NC}" - echo - echo -e "${YELLOW}验证方法:${NC}" - echo "1. 运行命令:ls -l \"$updater_path\"" - echo "2. 确认文件权限为 r--r--r--" - echo - log_warn "完成后请重启 Cursor" - } - - if [ -d "$updater_path" ]; then - rm -rf "$updater_path" 2>/dev/null || { - log_error "删除 cursor-updater 目录失败" - show_manual_guide - return 1 - } - log_info "成功删除 cursor-updater 目录" - fi - - touch "$updater_path" 2>/dev/null || { - log_error "创建阻止文件失败" - show_manual_guide - return 1 - } - - chmod 444 "$updater_path" 2>/dev/null && \ - chown "$CURRENT_USER" "$updater_path" 2>/dev/null || { - log_error "设置文件权限失败" - show_manual_guide - return 1 - } - - # 验证设置是否成功 - if [ ! -f "$updater_path" ] || [ -w "$updater_path" ]; then - log_error "验证失败:文件权限设置可能未生效" - show_manual_guide - return 1 fi - log_info "成功禁用自动更新" + echo + log_info "完成后请重启 Cursor" return 0 ;; q|Q)