Improve support for extensions with custom support on setup-php
This commit is contained in:
1
src/lists/darwin-deps
Normal file
1
src/lists/darwin-deps
Normal file
@@ -0,0 +1 @@
|
||||
geos=geos
|
||||
4
src/lists/linux-deps
Normal file
4
src/lists/linux-deps
Normal file
@@ -0,0 +1,4 @@
|
||||
geos=libgeos-dev
|
||||
pdo_firebird=firebird-dev
|
||||
oci8=libaio-dev
|
||||
pdo_oci=libaio-dev
|
||||
@@ -23,6 +23,19 @@ add_brew_tap() {
|
||||
fi
|
||||
}
|
||||
|
||||
get_dependencies() {
|
||||
extension=$1
|
||||
list_deps="$(grep "$extension" "${script_dir:?}"/../lists/darwin-deps | cut -d '=' -f 2)"
|
||||
formula_file="$tap_dir/$ext_tap/Formula/$extension@${version:?}.rb"
|
||||
if [ -e "$formula_file" ]; then
|
||||
formula_deps="$(grep "depends_on" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')"
|
||||
fi
|
||||
deps=()
|
||||
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
|
||||
[[ -n "${formula_deps[*]}" ]] && deps+=("${formula_deps[@]}")
|
||||
echo "${deps[@]}"
|
||||
}
|
||||
|
||||
filter_extensions() {
|
||||
extensions_array=("$@")
|
||||
filtered_extensions=()
|
||||
@@ -40,7 +53,7 @@ setup_extensions_helper() {
|
||||
extension_dir=$3
|
||||
cached_extension="${deps_cache_directory:?}/$dependency_extension.so"
|
||||
if ! [ -e "$cached_extension" ]; then
|
||||
brew install "$dependency_extension@${version:?}"
|
||||
brew install "$dependency_extension@$version"
|
||||
sudo find "$brew_cellar/$dependency_extension@${version:?}" -name "$dependency_extension.so" -exec cp {} "$cached_extension" \;
|
||||
else
|
||||
echo "Found $dependency_extension extension in cache"
|
||||
@@ -145,7 +158,7 @@ setup_dependencies() {
|
||||
add_brew_tap "$php_tap"
|
||||
add_brew_tap "$ext_tap"
|
||||
for extension in "${extensions_array[@]}"; do
|
||||
IFS=' ' read -r -a dependency_array <<<"$(grep "depends_on" "$tap_dir/$ext_tap/Formula/$extension@$version.rb" | cut -d '"' -f 2 | tr '\n' ' ')"
|
||||
IFS=' ' read -r -a dependency_array <<<"$(get_dependencies "$extension")"
|
||||
IFS=' ' read -r -a extension_array <<<"$(echo "${dependency_array[@]}" | grep -Eo "[a-z]*@" | sed 's/@//' | tr '\n' ' ')"
|
||||
IFS=' ' read -r -a libraries_array <<<"${dependency_array[@]//shivammathur*/}"
|
||||
if [[ -n "${libraries_array[*]// /}" ]]; then
|
||||
|
||||
@@ -6,9 +6,9 @@ link_apt_fast() {
|
||||
|
||||
fetch_package() {
|
||||
if ! [ -e /tmp/Packages ]; then
|
||||
. /etc/lsb-release
|
||||
. /etc/os-release
|
||||
deb_build_arch=$(dpkg-architecture -q DEB_BUILD_ARCH)
|
||||
curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$DISTRIB_CODENAME/main/binary-$deb_build_arch/Packages.gz"
|
||||
curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$VERSION_CODENAME/main/binary-$deb_build_arch/Packages.gz"
|
||||
gzip -df /tmp/Packages.gz
|
||||
fi
|
||||
}
|
||||
@@ -16,7 +16,12 @@ fetch_package() {
|
||||
get_dependencies() {
|
||||
package=$1
|
||||
prefix=$2
|
||||
sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Depends.*" | tr ',' '\n' | awk -v ORS='' '/^\s'"$prefix"'/{print$0}' | sed -e 's/([^()]*)//g' | sort | uniq | xargs echo -n
|
||||
list_deps="$(grep "${package#*-}" "${script_dir:?}"/../lists/linux-deps | cut -d '=' -f 2 | grep -Eo "$prefix.*")"
|
||||
package_deps="$(sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Depends.*" | tr ',' '\n' | awk -v ORS='' '/^\s'"$prefix"'/{print$0}' | sed -e 's/([^()]*)//g' | sort | uniq | xargs echo -n)"
|
||||
deps=()
|
||||
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
|
||||
[[ -n "${package_deps[*]}" ]] && deps+=("${package_deps[@]}")
|
||||
echo "${deps[@]}"
|
||||
}
|
||||
|
||||
get_package_link() {
|
||||
@@ -58,7 +63,7 @@ setup_extensions() {
|
||||
filter_libraries() {
|
||||
libraries="$(echo "$1" | xargs -n1 | sort | uniq | xargs)"
|
||||
for library in $libraries; do
|
||||
if grep -i -q -w "$library" "${script_dir:?}"/../lists/"$DISTRIB_CODENAME"-libs; then
|
||||
if grep -i -q -w "$library" "${script_dir:?}"/../lists/"$VERSION_CODENAME"-libs; then
|
||||
libraries=${libraries//$library/}
|
||||
fi
|
||||
done
|
||||
@@ -88,7 +93,7 @@ setup_dependencies() {
|
||||
extension_dir=$2
|
||||
[[ -z "${extensions// }" ]] && return
|
||||
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")"
|
||||
. /etc/lsb-release
|
||||
. /etc/os-release
|
||||
sudo rm -rf "${ext_config_directory:?}" || true
|
||||
libraries=""
|
||||
extension_packages=""
|
||||
|
||||
Reference in New Issue
Block a user