From 61d820a138ad06197661f7d8bb41bb1e33e39561 Mon Sep 17 00:00:00 2001 From: Bo Date: Thu, 19 Feb 2026 10:20:00 -0800 Subject: [PATCH] chore: macOS setup skips installed tools and brew failures --- scripts/setup_idf_macos.sh | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/scripts/setup_idf_macos.sh b/scripts/setup_idf_macos.sh index 1f38bd3..616a0c6 100755 --- a/scripts/setup_idf_macos.sh +++ b/scripts/setup_idf_macos.sh @@ -16,8 +16,41 @@ if ! command -v brew >/dev/null 2>&1; then exit 1 fi -brew install \ - git wget flex bison gperf python cmake ninja ccache dfu-util libusb libffi openssl@3 +ensure_brew_pkg() { + local pkg="$1" + if brew list --formula --versions "$pkg" >/dev/null 2>&1; then + echo "brew: $pkg already installed, skipping" + else + if ! brew install "$pkg"; then + echo "warn: failed to install $pkg via brew; continuing" >&2 + return 0 + fi + fi +} + +ensure_brew_pkg_if_missing_cmd() { + local pkg="$1" + local cmd="$2" + if command -v "$cmd" >/dev/null 2>&1; then + echo "cmd: $cmd already available, skipping brew $pkg" + else + ensure_brew_pkg "$pkg" + fi +} + +ensure_brew_pkg_if_missing_cmd git git +ensure_brew_pkg_if_missing_cmd wget wget +ensure_brew_pkg_if_missing_cmd flex flex +ensure_brew_pkg_if_missing_cmd bison bison +ensure_brew_pkg_if_missing_cmd gperf gperf +ensure_brew_pkg_if_missing_cmd python python3 +ensure_brew_pkg_if_missing_cmd cmake cmake +ensure_brew_pkg_if_missing_cmd ninja ninja +ensure_brew_pkg_if_missing_cmd ccache ccache +ensure_brew_pkg_if_missing_cmd dfu-util dfu-util +ensure_brew_pkg libusb +ensure_brew_pkg libffi +ensure_brew_pkg openssl@3 mkdir -p "$ESP_ROOT" if [[ ! -d "$IDF_DIR/.git" ]]; then