From 281249ad87970376ce088c60961e11dca4305e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E6=9C=8D=E5=8A=A1=E9=83=A8-=E5=8F=B6=E6=9E=97?= =?UTF-8?q?=E7=AB=8B?= <1361666059@qq.com> Date: Mon, 19 Oct 2026 02:39:56 -0700 Subject: [PATCH] =?UTF-8?q?fix(update.sh):=20=E4=BF=AE=E6=AD=A3=20brew=20o?= =?UTF-8?q?utdated=20=E9=80=80=E5=87=BA=E7=A0=81=E8=AF=AF=E5=88=A4?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E4=BB=8E=E4=B8=8D=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit brew outdated 在发现过期包时退出码为 1,原脚本把它当成查询失败, 直接记录警告并跳过升级,kotlin-lsp、jdtls 因此一直未被升级;Kitty cask 检查也是同样写法。新增 brew_outdated:只有退出码非零且无输出 才视为查询失败。 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- update.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/update.sh b/update.sh index 062c2c9..111f595 100755 --- a/update.sh +++ b/update.sh @@ -150,6 +150,16 @@ refresh_brew_metadata() { brew_metadata_refreshed=1 } +# 输出过期包列表:brew outdated 发现过期包时退出码为 1,只有无输出且非零才视为查询失败。 +brew_outdated() { + brew_outdated_output=$(brew outdated "$@") + brew_outdated_status=$? + if [ "$brew_outdated_status" -ne 0 ] && [ -z "$brew_outdated_output" ]; then + return 1 + fi + printf '%s\n' "$brew_outdated_output" +} + update_brew_formula_if_installed() { formula=$1 description=$2 @@ -159,7 +169,7 @@ update_brew_formula_if_installed() { record_update_failure "$description" return 0 } - outdated_formula=$(brew outdated --formula --quiet "$formula") || { + outdated_formula=$(brew_outdated --formula --quiet "$formula") || { record_update_failure "$description" return 0 } @@ -213,7 +223,7 @@ update_kitty() { if command -v brew >/dev/null 2>&1 && brew list --cask kitty >/dev/null 2>&1; then if refresh_brew_metadata; then - if outdated_kitty=$(brew outdated --cask --quiet kitty); then + if outdated_kitty=$(brew_outdated --cask --quiet kitty); then if [ -z "$outdated_kitty" ]; then say "✓ Kitty 已是最新版本。" else