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/bin"
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+ export PATH=$PHP_PATH /bin:$PATH
27+ }
28+
529install_extension ()
630{
731 # Workaround to get PECL running on PHP 7.0
@@ -10,9 +34,9 @@ install_extension ()
1034
1135 rm -f ${PHP_PATH} /lib/php.ini
1236
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}
37+ if [ " x${EXTENSION_BRANCH } " != " x" ] || [ " x${EXTENSION_REPO } " != " x" ]; then
38+ CLONE_REPO=${EXTENSION_REPO :- https:// github.com/ mongodb/ mongo-php-driver}
39+ CHECKOUT_BRANCH=${EXTENSION_BRANCH :- master}
1640
1741 echo " Compiling driver branch ${CHECKOUT_BRANCH} from repository ${CLONE_REPO} "
1842
@@ -29,25 +53,41 @@ install_extension ()
2953 make install
3054
3155 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 }
56+ elif [ " x${EXTENSION_VERSION } " != " x" ]; then
57+ echo " Installing driver version ${EXTENSION_VERSION } from PECL"
58+ pecl install -f mongodb-${EXTENSION_VERSION }
3559 else
3660 echo " Installing latest driver version from PECL"
3761 pecl install -f mongodb
3862 fi
3963
4064 sudo cp ${PROJECT_DIRECTORY} /.evergreen/config/php.ini ${PHP_PATH} /lib/php.ini
65+
66+ php --ri mongodb
67+ }
68+
69+ install_composer ()
70+ {
71+ EXPECTED_CHECKSUM=" $( php -r ' copy("https://composer.github.io/installer.sig", "php://stdout");' ) "
72+ php -r " copy('https://getcomposer.org/installer', 'composer-setup.php');"
73+ ACTUAL_CHECKSUM=" $( php -r " echo hash_file('sha384', 'composer-setup.php');" ) "
74+
75+ if [ " $EXPECTED_CHECKSUM " != " $ACTUAL_CHECKSUM " ]; then
76+ >&2 echo ' ERROR: Invalid installer checksum'
77+ rm composer-setup.php
78+ exit 1
79+ fi
80+
81+ php composer-setup.php --quiet
82+ rm composer-setup.php
4183}
4284
43- DIR=$( dirname $0 )
4485# Functions to fetch MongoDB binaries
45- . $DIR /download-mongodb.sh
86+ . ${DRIVERS_TOOLS} /.evergreen /download-mongodb.sh
4687OS=$( uname -s | tr ' [:upper:]' ' [:lower:]' )
4788
4889get_distro
4990
50- # See .evergreen/download-mongodb.sh for most possible values
5191case " $DISTRO " in
5292 cygwin* )
5393 echo " Install Windows dependencies"
@@ -85,17 +125,8 @@ case "$DEPENDENCIES" in
85125 ;;
86126esac
87127
88- PHP_PATH=/opt/php/${PHP_VERSION} -64bit
89- OLD_PATH=$PATH
90- PATH=$PHP_PATH /bin:$OLD_PATH
91-
128+ set_php_version $PHP_VERSION
92129install_extension
93-
94- php --ri mongodb
95-
96- # Install composer
97- php -r " copy('https://getcomposer.org/installer', 'composer-setup.php');"
98- php composer-setup.php
99- php -r " unlink('composer-setup.php');"
130+ install_composer
100131
101132php composer.phar update $COMPOSER_FLAGS
0 commit comments