fix(update.sh): 修正 brew outdated 退出码误判导致从不升级

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>
This commit is contained in:
云服务部-叶林立
2026-10-19 02:39:56 -07:00
co-authored by Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent 2682bd7fa7
commit 281249ad87
+12 -2
View File
@@ -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