diff --git a/Formula/macdeploycheck.rb b/Formula/macdeploycheck.rb index de0d5b5e9..174f9a93f 100644 --- a/Formula/macdeploycheck.rb +++ b/Formula/macdeploycheck.rb @@ -4,7 +4,7 @@ class Macdeploycheck < Formula version "0.1.0" # Homebrew requires a URL stanza. Use the script shipped in this tap (file://), # so installs always match the tapped revision. - url "file://#{File.expand_path("../../dist/macos/macdeploycheck.sh", __dir__)}" + url "file://#{File.expand_path("../dist/macos/macdeploycheck.sh", __dir__)}" sha256 :no_check license "MIT" diff --git a/build_tools/macos/install_brew_deps.sh b/build_tools/macos/install_brew_deps.sh index 878b8f0c7..1095825d1 100755 --- a/build_tools/macos/install_brew_deps.sh +++ b/build_tools/macos/install_brew_deps.sh @@ -56,6 +56,18 @@ if ! command -v brew >/dev/null 2>&1; then exit 1 fi +# Brewfile support (`brew bundle`) is built into modern Homebrew. The historical +# tap `homebrew/bundle` has been deprecated and may be empty on newer Homebrew. +# If `brew bundle` is missing, the fix is to update Homebrew itself. +if ! brew bundle --help >/dev/null 2>&1; then + run_with_heartbeat "Updating Homebrew (required for 'brew bundle')" bash -lc "brew update" + if ! brew bundle --help >/dev/null 2>&1; then + echo "Error: This Homebrew installation does not provide 'brew bundle'." >&2 + echo "Update Homebrew (e.g. 'brew update') or reinstall Homebrew, then re-run this script." >&2 + exit 1 + fi +fi + # Homebrew taps are git clones; local formula changes must be committed to be visible. if command -v git >/dev/null 2>&1 && git -C "$repo_root" rev-parse --is-inside-work-tree >/dev/null 2>&1; then if git -C "$repo_root" status --porcelain Formula/ | grep -q .; then