mirror of
				https://github.com/shivammathur/setup-php.git
				synced 2025-10-31 15:26:23 +07:00 
			
		
		
		
	Fix copying extensions from cellar to extension directory on macOS
This commit is contained in:
		| @ -60,12 +60,32 @@ add_brew_tap() { | ||||
|   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. | ||||
| add_brew_extension() { | ||||
|   formula=$1 | ||||
|   prefix=$2 | ||||
|   extension=$(grep "$formula=" "$src"/configs/brew_extensions | cut -d '=' -f 2) | ||||
|   [[ -z "$extension" ]] && extension="$(echo "$formula" | sed -E "s/pecl_|[0-9]//g")" | ||||
|   extension="$(get_extension_from_formula "$formula")" | ||||
|   enable_extension "$extension" "$prefix" | ||||
|   if check_extension "$extension"; then | ||||
|     add_log "${tick:?}" "$extension" "Enabled" | ||||
| @ -76,7 +96,7 @@ add_brew_extension() { | ||||
|     update_dependencies >/dev/null 2>&1 | ||||
|     disable_dependency_extensions "$extension" >/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" | ||||
|   fi | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shivam Mathur
					Shivam Mathur