From 3eb494683acb6513d170cfce9bc650dbb240b679 Mon Sep 17 00:00:00 2001 From: Orion Date: Sat, 9 May 2026 08:48:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor(core):=20=E2=99=BB=EF=B8=8F=20?= =?UTF-8?q?=E7=AE=80=E5=8C=96=E7=BB=88=E7=AB=AF=E5=AE=BD=E5=BA=A6=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=B9=B6=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为了提高脚本的可维护性,简化了 `brew-upgrade-manager.sh` 中的终端宽度逻辑。通过移除复杂的命令行参数解析和动态宽度检测,改为使用固定的 130 列配置,并同步更新了引导脚本以导出环境变量。 - 移除冗余的命令行参数解析逻辑 - 将终端宽度处理逻辑重写为简单的函数 - 强制导出 `COLUMNS` 环境变量以统一输出格式 - 优化了脚本内部执行步骤的视觉分隔效果 --- homebrew/brew-upgrade-manager-bootstrap.sh | 1 + homebrew/brew-upgrade-manager.sh | 63 ++-------------------- 2 files changed, 6 insertions(+), 58 deletions(-) diff --git a/homebrew/brew-upgrade-manager-bootstrap.sh b/homebrew/brew-upgrade-manager-bootstrap.sh index 9df7e9e..6c8173d 100755 --- a/homebrew/brew-upgrade-manager-bootstrap.sh +++ b/homebrew/brew-upgrade-manager-bootstrap.sh @@ -63,4 +63,5 @@ if [[ "${BREWUP_DEBUG:-}" == "1" ]]; then head -n 1 "$TEMP" fi +export COLUMNS="130" bash "$TEMP" "$@" diff --git a/homebrew/brew-upgrade-manager.sh b/homebrew/brew-upgrade-manager.sh index fe197d2..6604816 100644 --- a/homebrew/brew-upgrade-manager.sh +++ b/homebrew/brew-upgrade-manager.sh @@ -37,59 +37,10 @@ else fi # --- 终端宽度和打印函数 --- -DEFAULT_FALLBACK_WIDTH="130" -TERMINAL_WIDTH_OVERRIDE="" - -# 解析命令行参数 -while [[ $# -gt 0 ]]; do - case "$1" in - --width) - if [[ -n "$2" && "$2" =~ ^[0-9]+$ ]]; then - TERMINAL_WIDTH_OVERRIDE="$2" - shift 2 - else - echo -e "${YELLOW}Error: '--width' parameter requires a valid numeric value.${NC}" - exit 1 - fi - ;; - --width=*) - TERMINAL_WIDTH_OVERRIDE="${1#*=}" - if ! [[ "$TERMINAL_WIDTH_OVERRIDE" =~ ^[0-9]+$ ]]; then - echo -e "${YELLOW}Error: '--width' parameter requires a valid numeric value.${NC}" - exit 1 - fi - shift - ;; - *) - shift - ;; - esac -done - -FIXED_TERMINAL_WIDTH="" -if [[ -n "$TERMINAL_WIDTH_OVERRIDE" ]]; then - FIXED_TERMINAL_WIDTH="$TERMINAL_WIDTH_OVERRIDE" -elif [[ -n "$HB_TERMINAL_WIDTH" && "$HB_TERMINAL_WIDTH" =~ ^[0-9]+$ ]]; then - FIXED_TERMINAL_WIDTH="$HB_TERMINAL_WIDTH" -fi +TERMINAL_WIDTH="130" terminal_width() { - local width="" - if [[ -n "$FIXED_TERMINAL_WIDTH" ]]; then - printf "%s" "$FIXED_TERMINAL_WIDTH" - return - fi - - if command -v stty &>/dev/null && stty size &>/dev/null; then - width=$(stty size 2>/dev/null | awk '{print $2}') - fi - if [[ -z "$width" || "$width" -le 0 ]]; then - width=$(tput cols 2>/dev/null || echo "$DEFAULT_FALLBACK_WIDTH") - fi - if [[ -z "$width" || "$width" -le 0 ]]; then - width="$DEFAULT_FALLBACK_WIDTH" - fi - printf "%s" "$width" + printf "%s" "$TERMINAL_WIDTH" } separator() { local width; width=$(terminal_width); printf '=%.0s' $(seq 1 "$width"); printf "\n"; } @@ -139,13 +90,9 @@ echo -e "\n${CYAN}>>> [2/2] Upgrading GUI Casks (brew upgrade --cask --greedy -- export HOMEBREW_COLOR=1 # --- 终端宽度处理 --- -# 交互式终端里让 brew 直接读取当前 TTY,避免 sudo 时间戳因新建 PTY 失效。 -if [[ -n "$FIXED_TERMINAL_WIDTH" || ! -t 1 ]]; then - export COLUMNS - COLUMNS="$(terminal_width)" -else - unset COLUMNS -fi +# 固定宽度,避免动态识别终端列数导致 prompt 重绘异常。 +export COLUMNS +COLUMNS="$(terminal_width)" brew upgrade --cask --greedy --force