Skip to content

Commit bbf0b63

Browse files
committed
Try Brew extension installs before refreshing Homebrew
1 parent 2c253bf commit bbf0b63

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

‎src/scripts/darwin.sh‎

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ handle_dependency_extensions() {
1717
for dependency_extension in "${dependency_extensions[@]}"; do
1818
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$dependency_extension@$version" >/dev/null 2>&1 &&
1919
brew link --overwrite --force "$dependency_extension@$version" >/dev/null 2>&1 &&
20-
copy_brew_extensions "$dependency_extension"
20+
copy_brew_extensions "$dependency_extension" || return $?
2121
done
2222
fi
2323
}
@@ -71,6 +71,16 @@ copy_brew_extensions() {
7171
fi
7272
}
7373

74+
# Install an extension and its variant-specific dependencies with the current Brew state.
75+
install_brew_extension() {
76+
local formula=$1
77+
local extension=$2
78+
handle_dependency_extensions "$formula" "$extension" &&
79+
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$formula@$version" &&
80+
brew link --overwrite --force "$formula@$version" &&
81+
copy_brew_extensions "$formula"
82+
}
83+
7484
# Function to install a php extension from shivammathur/extensions tap.
7585
add_brew_extension() {
7686
formula=$1
@@ -84,13 +94,13 @@ add_brew_extension() {
8494
add_brew_tap "$php_tap"
8595
add_brew_tap "$ext_tap"
8696
formula="$(get_renamed_formula "$formula")"
87-
update_dependencies >/dev/null 2>&1
88-
handle_dependency_extensions "$formula" "$extension" >/dev/null 2>&1
8997
(
90-
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$formula@$version" >/dev/null 2>&1 &&
91-
brew link --overwrite --force "$formula@$version" >/dev/null 2>&1 &&
92-
copy_brew_extensions "$formula"
93-
) || {
98+
patch_brew
99+
# Keep the watchdog, but refresh before retrying a failed first attempt.
100+
SETUP_PHP_BREW_RETRY_ATTEMPTS=1 install_brew_extension "$formula" "$extension" || {
101+
update_dependencies && install_brew_extension "$formula" "$extension"
102+
}
103+
) >/dev/null 2>&1 || {
94104
if [ -n "$expected_version" ]; then
95105
pecl_install "$extension-$expected_version" || pecl_install "$extension"
96106
else
@@ -157,15 +167,15 @@ patch_brew() {
157167

158168
# Function to update dependencies.
159169
update_dependencies() {
160-
patch_brew
161170
if ! [ -e /tmp/update_dependencies ]; then
162171
for repo in "$brew_repo" "${core_repo:?}"; do
163172
if [ -e "$repo" ]; then
164-
git_retry -C "$repo" fetch origin main && git -C "$repo" reset --hard origin/main
173+
git_retry -C "$repo" fetch origin main && git -C "$repo" reset --hard origin/main || return $?
165174
fi
166175
done
167176
echo '' | sudo tee /tmp/update_dependencies >/dev/null 2>&1
168177
fi
178+
patch_brew
169179
}
170180

171181
# Function to get PHP version if it is already installed using Homebrew.

0 commit comments

Comments
 (0)