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/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
+
5
29
install_extension ()
6
30
{
7
31
# Workaround to get PECL running on PHP 7.0
@@ -10,9 +34,9 @@ install_extension ()
10
34
11
35
rm -f ${PHP_PATH} /lib/php.ini
12
36
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}
16
40
17
41
echo " Compiling driver branch ${CHECKOUT_BRANCH} from repository ${CLONE_REPO} "
18
42
@@ -29,25 +53,41 @@ install_extension ()
29
53
make install
30
54
31
55
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 }
35
59
else
36
60
echo " Installing latest driver version from PECL"
37
61
pecl install -f mongodb
38
62
fi
39
63
40
64
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
41
83
}
42
84
43
- DIR=$( dirname $0 )
44
85
# Functions to fetch MongoDB binaries
45
- . $DIR /download-mongodb.sh
86
+ . ${DRIVERS_TOOLS} /.evergreen /download-mongodb.sh
46
87
OS=$( uname -s | tr ' [:upper:]' ' [:lower:]' )
47
88
48
89
get_distro
49
90
50
- # See .evergreen/download-mongodb.sh for most possible values
51
91
case " $DISTRO " in
52
92
cygwin* )
53
93
echo " Install Windows dependencies"
@@ -85,17 +125,8 @@ case "$DEPENDENCIES" in
85
125
;;
86
126
esac
87
127
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
92
129
install_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
100
131
101
132
php composer.phar update $COMPOSER_FLAGS
0 commit comments