mirror of
https://github.com/shivammathur/setup-php.git
synced 2026-09-29 04:20:41 +07:00
Try Brew extension installs before refreshing Homebrew
This commit is contained in:
+19
-9
@@ -17,7 +17,7 @@ handle_dependency_extensions() {
|
|||||||
for dependency_extension in "${dependency_extensions[@]}"; do
|
for dependency_extension in "${dependency_extensions[@]}"; do
|
||||||
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$dependency_extension@$version" >/dev/null 2>&1 &&
|
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$dependency_extension@$version" >/dev/null 2>&1 &&
|
||||||
brew link --overwrite --force "$dependency_extension@$version" >/dev/null 2>&1 &&
|
brew link --overwrite --force "$dependency_extension@$version" >/dev/null 2>&1 &&
|
||||||
copy_brew_extensions "$dependency_extension"
|
copy_brew_extensions "$dependency_extension" || return $?
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -71,6 +71,16 @@ copy_brew_extensions() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Install an extension and its variant-specific dependencies with the current Brew state.
|
||||||
|
install_brew_extension() {
|
||||||
|
local formula=$1
|
||||||
|
local extension=$2
|
||||||
|
handle_dependency_extensions "$formula" "$extension" &&
|
||||||
|
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$formula@$version" &&
|
||||||
|
brew link --overwrite --force "$formula@$version" &&
|
||||||
|
copy_brew_extensions "$formula"
|
||||||
|
}
|
||||||
|
|
||||||
# Function to install a php extension from shivammathur/extensions tap.
|
# Function to install a php extension from shivammathur/extensions tap.
|
||||||
add_brew_extension() {
|
add_brew_extension() {
|
||||||
formula=$1
|
formula=$1
|
||||||
@@ -84,13 +94,13 @@ add_brew_extension() {
|
|||||||
add_brew_tap "$php_tap"
|
add_brew_tap "$php_tap"
|
||||||
add_brew_tap "$ext_tap"
|
add_brew_tap "$ext_tap"
|
||||||
formula="$(get_renamed_formula "$formula")"
|
formula="$(get_renamed_formula "$formula")"
|
||||||
update_dependencies >/dev/null 2>&1
|
|
||||||
handle_dependency_extensions "$formula" "$extension" >/dev/null 2>&1
|
|
||||||
(
|
(
|
||||||
safe_brew install --skip-link "${brew_opts[@]}" "$ext_tap/$formula@$version" >/dev/null 2>&1 &&
|
patch_brew
|
||||||
brew link --overwrite --force "$formula@$version" >/dev/null 2>&1 &&
|
# Keep the watchdog, but refresh before retrying a failed first attempt.
|
||||||
copy_brew_extensions "$formula"
|
SETUP_PHP_BREW_RETRY_ATTEMPTS=1 install_brew_extension "$formula" "$extension" || {
|
||||||
) || {
|
update_dependencies && install_brew_extension "$formula" "$extension"
|
||||||
|
}
|
||||||
|
) >/dev/null 2>&1 || {
|
||||||
if [ -n "$expected_version" ]; then
|
if [ -n "$expected_version" ]; then
|
||||||
pecl_install "$extension-$expected_version" || pecl_install "$extension"
|
pecl_install "$extension-$expected_version" || pecl_install "$extension"
|
||||||
else
|
else
|
||||||
@@ -157,15 +167,15 @@ patch_brew() {
|
|||||||
|
|
||||||
# Function to update dependencies.
|
# Function to update dependencies.
|
||||||
update_dependencies() {
|
update_dependencies() {
|
||||||
patch_brew
|
|
||||||
if ! [ -e /tmp/update_dependencies ]; then
|
if ! [ -e /tmp/update_dependencies ]; then
|
||||||
for repo in "$brew_repo" "${core_repo:?}"; do
|
for repo in "$brew_repo" "${core_repo:?}"; do
|
||||||
if [ -e "$repo" ]; then
|
if [ -e "$repo" ]; then
|
||||||
git_retry -C "$repo" fetch origin main && git -C "$repo" reset --hard origin/main
|
git_retry -C "$repo" fetch origin main && git -C "$repo" reset --hard origin/main || return $?
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo '' | sudo tee /tmp/update_dependencies >/dev/null 2>&1
|
echo '' | sudo tee /tmp/update_dependencies >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
patch_brew
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to get PHP version if it is already installed using Homebrew.
|
# Function to get PHP version if it is already installed using Homebrew.
|
||||||
|
|||||||
Reference in New Issue
Block a user