1
1
#! /bin/sh
2
- set -o xtrace # Write all commands first to stderr
3
2
set -o errexit # Exit the script with error if any of the commands fail
4
3
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
+
5
30
install_extension ()
6
31
{
7
32
# Workaround to get PECL running on PHP 7.0
@@ -10,9 +35,9 @@ install_extension ()
10
35
11
36
rm -f ${PHP_PATH} /lib/php.ini
12
37
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}
16
41
17
42
echo " Compiling driver branch ${CHECKOUT_BRANCH} from repository ${CLONE_REPO} "
18
43
@@ -29,15 +54,33 @@ install_extension ()
29
54
make install
30
55
31
56
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 }
35
60
else
36
61
echo " Installing latest driver version from PECL"
37
62
pecl install -f mongodb
38
63
fi
39
64
40
65
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
41
84
}
42
85
43
86
# Functions to fetch MongoDB binaries
@@ -83,17 +126,8 @@ case "$DEPENDENCIES" in
83
126
;;
84
127
esac
85
128
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
90
130
install_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
98
132
99
133
php composer.phar update $COMPOSER_FLAGS
0 commit comments