List preinstalled modules just once

Test: pdo, mbstring, SimpleXML
pull/178/head
Michele Locati 2020-10-18 18:40:43 +02:00
parent 18a56d7144
commit 5e68f9119e
No known key found for this signature in database
GPG Key ID: 98B7CE2E7234E28B
1 changed files with 11 additions and 14 deletions

View File

@ -42,12 +42,10 @@ setPHPMajorMinor() {
PHP_MAJMIN_VERSION=$(php-config --version | awk -F. '{print $1*100+$2}') PHP_MAJMIN_VERSION=$(php-config --version | awk -F. '{print $1*100+$2}')
} }
# Get the normalized list of already installed PHP modules # Set these variables:
# # - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script
# Output: setPHPPreinstalledModules() {
# Space-separated list of module handles PHP_PREINSTALLED_MODULES=''
getPHPInstalledModules() {
getPHPInstalledModules_result=''
IFS=' IFS='
' '
for getPHPInstalledModules_module in $(php -m); do for getPHPInstalledModules_module in $(php -m); do
@ -71,13 +69,13 @@ getPHPInstalledModules() {
;; ;;
esac esac
if test -n "$getPHPInstalledModules_moduleNormalized"; then if test -n "$getPHPInstalledModules_moduleNormalized"; then
if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$getPHPInstalledModules_result"; then if ! stringInList "$getPHPInstalledModules_moduleNormalized" "$PHP_PREINSTALLED_MODULES"; then
getPHPInstalledModules_result="$getPHPInstalledModules_result $getPHPInstalledModules_moduleNormalized" PHP_PREINSTALLED_MODULES="$PHP_PREINSTALLED_MODULES $getPHPInstalledModules_moduleNormalized"
fi fi
fi fi
done done
resetIFS resetIFS
printf '%s' "${getPHPInstalledModules_result# }" PHP_PREINSTALLED_MODULES="${PHP_PREINSTALLED_MODULES# }"
} }
# Get the handles of the modules to be installed # Get the handles of the modules to be installed
@ -91,7 +89,6 @@ getPHPInstalledModules() {
# Output: # Output:
# Nothing # Nothing
processCommandArguments() { processCommandArguments() {
processCommandArguments_alreadyInstalled="$(getPHPInstalledModules)"
processCommandArguments_endArgs=0 processCommandArguments_endArgs=0
PHP_MODULES_TO_INSTALL='' PHP_MODULES_TO_INSTALL=''
while :; do while :; do
@ -126,7 +123,7 @@ processCommandArguments() {
esac esac
if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then if stringInList "$processCommandArguments_name" "$PHP_MODULES_TO_INSTALL"; then
printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2 printf '### WARNING Duplicated module name specified: %s ###\n' "$processCommandArguments_name" >&2
elif stringInList "$processCommandArguments_name" "$processCommandArguments_alreadyInstalled"; then elif stringInList "$processCommandArguments_name" "$PHP_PREINSTALLED_MODULES"; then
printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2 printf '### WARNING Module already installed: %s ###\n' "$processCommandArguments_name" >&2
else else
PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name" PHP_MODULES_TO_INSTALL="$PHP_MODULES_TO_INSTALL $processCommandArguments_name"
@ -152,8 +149,7 @@ checkRequiredModule() {
if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then if ! stringInList "$1" "$PHP_MODULES_TO_INSTALL"; then
return return
fi fi
checkRequiredModule_alreadyInstalled="$(getPHPInstalledModules)" if stringInList "$2" "$PHP_PREINSTALLED_MODULES"; then
if stringInList "$2" "$checkRequiredModule_alreadyInstalled"; then
return return
fi fi
PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")" PHP_MODULES_TO_INSTALL="$(removeStringFromList "$1" "$PHP_MODULES_TO_INSTALL")"
@ -1431,7 +1427,7 @@ installPickle() {
fi fi
curl -L -f https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle curl -L -f https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle
chmod +x /tmp/pickle chmod +x /tmp/pickle
if ! stringInList 'zip' "$(getPHPInstalledModules)"; then if ! stringInList 'zip' "$PHP_PREINSTALLED_MODULES"; then
PHP_MODULES_TO_INSTALL="zip $(removeStringFromList 'zip' "$PHP_MODULES_TO_INSTALL")" PHP_MODULES_TO_INSTALL="zip $(removeStringFromList 'zip' "$PHP_MODULES_TO_INSTALL")"
fi fi
PECL_COMMAND="/tmp/pickle install --defaults" PECL_COMMAND="/tmp/pickle install --defaults"
@ -1528,6 +1524,7 @@ mkdir -p /tmp/src
IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)"
setDistro setDistro
setPHPMajorMinor setPHPMajorMinor
setPHPPreinstalledModules
case "$PHP_MAJMIN_VERSION" in case "$PHP_MAJMIN_VERSION" in
505 | 506 | 700 | 701 | 702 | 703 | 704 | 800) ;; 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800) ;;
*) *)