mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-26 13:23:05 +07:00
Fix copying extensions from cellar to extension directory on macOS
This commit is contained in:
parent
34c35ecdad
commit
228bfba836
@ -60,12 +60,32 @@ add_brew_tap() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to get extension name from brew formula.
|
||||||
|
get_extension_from_formula() {
|
||||||
|
local formula=$1
|
||||||
|
local extension
|
||||||
|
extension=$(grep "$formula=" "$src"/configs/brew_extensions | cut -d '=' -f 2)
|
||||||
|
[[ -z "$extension" ]] && extension="$(echo "$formula" | sed -E "s/pecl_|[0-9]//g")"
|
||||||
|
echo "$extension"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to copy extension binaries to the extension directory.
|
||||||
|
copy_brew_extensions() {
|
||||||
|
local formula=$1
|
||||||
|
formula_file="$tap_dir/$ext_tap/Formula/$formula@$version.rb"
|
||||||
|
deps="$(grep -Eo 'depends_on "shivammathur[^"]+' "$formula_file" | cut -d '/' -f 3 | tr '\n' ' ')"
|
||||||
|
IFS=' ' read -r -a deps <<< "$formula@$version $deps"
|
||||||
|
for dependency in "${deps[@]}"; do
|
||||||
|
extension_file="$brew_prefix/opt/$dependency/$(get_extension_from_formula "${dependency%@*}").so"
|
||||||
|
[ -e "$extension_file" ] && sudo cp "$extension_file" "$ext_dir"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# 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
|
||||||
prefix=$2
|
prefix=$2
|
||||||
extension=$(grep "$formula=" "$src"/configs/brew_extensions | cut -d '=' -f 2)
|
extension="$(get_extension_from_formula "$formula")"
|
||||||
[[ -z "$extension" ]] && extension="$(echo "$formula" | sed -E "s/pecl_|[0-9]//g")"
|
|
||||||
enable_extension "$extension" "$prefix"
|
enable_extension "$extension" "$prefix"
|
||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
add_log "${tick:?}" "$extension" "Enabled"
|
add_log "${tick:?}" "$extension" "Enabled"
|
||||||
@ -76,7 +96,7 @@ add_brew_extension() {
|
|||||||
update_dependencies >/dev/null 2>&1
|
update_dependencies >/dev/null 2>&1
|
||||||
disable_dependency_extensions "$extension" >/dev/null 2>&1
|
disable_dependency_extensions "$extension" >/dev/null 2>&1
|
||||||
brew install -f "$formula@$version" >/dev/null 2>&1
|
brew install -f "$formula@$version" >/dev/null 2>&1
|
||||||
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
copy_brew_extensions "$formula"
|
||||||
add_extension_log "$extension" "Installed and enabled"
|
add_extension_log "$extension" "Installed and enabled"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user