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