From 80ed37ebdd78cf8e83853e4861818b70d0be2ab3 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 8 Oct 2025 19:35:40 +1100 Subject: [PATCH] Brew simplification. --- util/env-bootstrap.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/util/env-bootstrap.sh b/util/env-bootstrap.sh index 719df97497..0f1f6d8df8 100755 --- a/util/env-bootstrap.sh +++ b/util/env-bootstrap.sh @@ -264,8 +264,25 @@ __EOT__ if [ -n "$(command -v brew 2>/dev/null || true)" ]; then echo "It will also install the following system packages using 'brew':" >&2 print_package_manager_deps_and_delay - brew update && brew upgrade --formulae - brew install $(get_package_manager_deps) + + brew update + + local existing="" + local new="" + for dep in $(get_package_manager_deps); do + if brew list --formula | grep -q "^${dep}\$"; then + existing="${existing:-} $dep" + else + new="${new:-} $dep" + fi + done + + if [ -n "${existing:-}" ]; then + brew upgrade $existing + fi + if [ -n "${new:-}" ]; then + brew install $new + fi else echo "Please install 'brew' to continue. See https://brew.sh/ for more information." >&2 exit 1