Skip to content

Commit 6a78d5d

Browse files
authored
Merge pull request #107 from weierophinney/feature/lazy-install-swoole-packages
Lazy-install Swoole/OpenSwoole extensions
2 parents 2cc2dbe + a37e66d commit 6a78d5d

File tree

3 files changed

+37
-19
lines changed

3 files changed

+37
-19
lines changed

entrypoint.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,16 @@ if [[ "${PHP}" == "" ]];then
142142
fi
143143

144144
declare -a BEFORE_SCRIPT=()
145-
readarray -t BEFORE_SCRIPT="$(echo "${JOB}" | jq -rc '(.before_script // [])[]' )"
145+
BEFORE_SCRIPT_STRING="$(echo "${JOB}" | jq -rc '(.before_script // [])[]' | tr -d '\n')"
146+
if [[ "${BEFORE_SCRIPT_STRING}" != "" ]]; then
147+
readarray -t BEFORE_SCRIPT="${BEFORE_SCRIPT_STRING}"
148+
fi
146149

147150
declare -a AFTER_SCRIPT=()
148-
readarray -t AFTER_SCRIPT="$(echo "${JOB}" | jq -rc '(.after_script // [])[]' )"
151+
AFTER_SCRIPT_STRING="$(echo "${JOB}" | jq -rc '(.after_script // [])[]' | tr -d '\n')"
152+
if [[ "${AFTER_SCRIPT_STRING}" != "" ]]; then
153+
readarray -t AFTER_SCRIPT="${AFTER_SCRIPT_STRING}"
154+
fi
149155

150156

151157
echo "Marking PHP ${PHP} as configured default"

mods-install/install_swoole.sh

Lines changed: 0 additions & 15 deletions
This file was deleted.

scripts/extensions.sh

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
set -e
88

9+
SWOOLE_PACKAGE_URL="https://github.com/weierophinney/laminas-ci-swoole-builder/releases/download/0.2.0/php%s-%s.tgz"
10+
911
function install_extensions {
1012
local PHP=$1
1113
local -a EXTENSIONS=()
@@ -27,6 +29,25 @@ function install_extensions {
2729
esac
2830
}
2931

32+
function install_swoole_extension {
33+
local PHP=$1
34+
local extension=$2
35+
local package_url
36+
local package
37+
38+
# shellcheck disable=SC2059
39+
package_url=$(printf "${SWOOLE_PACKAGE_URL}" "${PHP}" "${extension}")
40+
package=$(basename "${package_url}")
41+
42+
echo "Fetching ${extension} extension package for PHP ${PHP}"
43+
cd /tmp
44+
wget "${package_url}"
45+
cd /
46+
tar xzf "/tmp/${package}"
47+
rm -rf "/tmp/${package}"
48+
phpenmod -v "${PHP}" -s ALL "${extension}"
49+
}
50+
3051
function install_packaged_extensions {
3152
local PHP=$1
3253
# shellcheck disable=SC2206
@@ -37,8 +58,14 @@ function install_packaged_extensions {
3758
local TO_INSTALL=""
3859

3960
for EXTENSION in "${EXTENSIONS[@]}"; do
40-
# Converting extension name to package name, e.g. php8.0-redis
41-
TO_INSTALL="${TO_INSTALL}php${PHP}-$EXTENSION "
61+
if [[ "${EXTENSION}" =~ openswoole ]]; then
62+
install_swoole_extension "${PHP}" "openswoole"
63+
elif [[ "${EXTENSION}" =~ swoole ]]; then
64+
install_swoole_extension "${PHP}" "swoole"
65+
else
66+
# Converting extension name to package name, e.g. php8.0-redis
67+
TO_INSTALL="${TO_INSTALL}php${PHP}-$EXTENSION "
68+
fi
4269
done
4370

4471
if [ -z "$TO_INSTALL" ]; then

0 commit comments

Comments
 (0)