11#! /bin/sh
2- set -o xtrace # Write all commands first to stderr
32set -o errexit # Exit the script with error if any of the commands fail
43
4+ set_php_version ()
5+ {
6+ PHP_VERSION=$1
7+
8+ if [ ! -d " /opt/php" ]; then
9+ echo " PHP is not available"
10+ exit 1
11+ fi
12+
13+ if [ -d " /opt/php/${PHP_VERSION} -64bit/bin" ]; then
14+ export PHP_PATH=" /opt/php/${PHP_VERSION} -64bit"
15+ else
16+ # Try to find the newest version matching our constant
17+ export PHP_PATH=` find /opt/php/ -maxdepth 1 -type d -name " ${PHP_VERSION} .*-64bit" -print | sort -V -r | head -1`
18+ fi
19+
20+ if [ ! -d " $PHP_PATH " ]; then
21+ echo " Could not find PHP binaries for version ${PHP_VERSION} . Listing available versions..."
22+ ls -1 /opt/php
23+ exit 1
24+ fi
25+
26+ echo ' PHP_PATH: "' $PHP_PATH ' "' > php-expansion.yml
27+ export PATH=$PHP_PATH /bin:$PATH
28+ }
29+
530install_extension ()
631{
732 # Workaround to get PECL running on PHP 7.0
@@ -10,9 +35,9 @@ install_extension ()
1035
1136 rm -f ${PHP_PATH} /lib/php.ini
1237
13- if [ " x${DRIVER_BRANCH } " != " x" ] || [ " x${DRIVER_REPO } " != " x" ]; then
14- CLONE_REPO=${DRIVER_REPO :- https:// github.com/ mongodb/ mongo-php-driver}
15- CHECKOUT_BRANCH=${DRIVER_BRANCH :- master}
38+ if [ " x${EXTENSION_BRANCH } " != " x" ] || [ " x${EXTENSION_REPO } " != " x" ]; then
39+ CLONE_REPO=${EXTENSION_REPO :- https:// github.com/ mongodb/ mongo-php-driver}
40+ CHECKOUT_BRANCH=${EXTENSION_BRANCH :- master}
1641
1742 echo " Compiling driver branch ${CHECKOUT_BRANCH} from repository ${CLONE_REPO} "
1843
@@ -29,15 +54,33 @@ install_extension ()
2954 make install
3055
3156 cd ${PROJECT_DIRECTORY}
32- elif [ " x${DRIVER_VERSION } " != " x" ]; then
33- echo " Installing driver version ${DRIVER_VERSION } from PECL"
34- pecl install -f mongodb-${DRIVER_VERSION }
57+ elif [ " x${EXTENSION_VERSION } " != " x" ]; then
58+ echo " Installing driver version ${EXTENSION_VERSION } from PECL"
59+ pecl install -f mongodb-${EXTENSION_VERSION }
3560 else
3661 echo " Installing latest driver version from PECL"
3762 pecl install -f mongodb
3863 fi
3964
4065 sudo cp ${PROJECT_DIRECTORY} /.evergreen/config/php.ini ${PHP_PATH} /lib/php.ini
66+
67+ php --ri mongodb
68+ }
69+
70+ install_composer ()
71+ {
72+ EXPECTED_CHECKSUM=" $( php -r ' copy("https://composer.github.io/installer.sig", "php://stdout");' ) "
73+ php -r " copy('https://getcomposer.org/installer', 'composer-setup.php');"
74+ ACTUAL_CHECKSUM=" $( php -r " echo hash_file('sha384', 'composer-setup.php');" ) "
75+
76+ if [ " $EXPECTED_CHECKSUM " != " $ACTUAL_CHECKSUM " ]; then
77+ >&2 echo ' ERROR: Invalid installer checksum'
78+ rm composer-setup.php
79+ exit 1
80+ fi
81+
82+ php composer-setup.php --quiet
83+ rm composer-setup.php
4184}
4285
4386# Functions to fetch MongoDB binaries
@@ -83,17 +126,8 @@ case "$DEPENDENCIES" in
83126 ;;
84127esac
85128
86- PHP_PATH=/opt/php/${PHP_VERSION} -64bit
87- OLD_PATH=$PATH
88- PATH=$PHP_PATH /bin:$OLD_PATH
89-
129+ set_php_version $PHP_VERSION
90130install_extension
91-
92- php --ri mongodb
93-
94- # Install composer
95- php -r " copy('https://getcomposer.org/installer', 'composer-setup.php');"
96- php composer-setup.php
97- php -r " unlink('composer-setup.php');"
131+ install_composer
98132
99133php composer.phar update $COMPOSER_FLAGS
0 commit comments