dk: support de COMPOSER_PHP
This commit is contained in:
parent
f28df5266c
commit
28f4d398c2
62
dk
62
dk
|
@ -138,14 +138,20 @@ COMMANDES
|
|||
X|prune
|
||||
Supprimer les containers et les images inutilisées
|
||||
|
||||
composer|ci|cu|cs [args...]
|
||||
composer|ci|cu|cr|cs [args...]
|
||||
Frontend pour lancer composer à l'intérieur d'un container. Les
|
||||
commandes 'ci', 'cu' et 'cs' sont respectivement des alias pour
|
||||
'composer install', 'composer update' et 'composer shell'
|
||||
commandes 'ci', 'cu', 'cr', 'cs' sont des alias pour 'composer install',
|
||||
'composer update', 'composer rshell' et 'composer shell' respectivement
|
||||
S'il existe un fichier .composer.conf dans le répertoire du projet, il
|
||||
est sourcé. Ce fichier définit des variables qui indiquent comment la
|
||||
commande composer est lancée. Les variables suivantes peuvent être
|
||||
définies:
|
||||
* COMPOSER_PHP -- Version de PHP en dessous de laquelle COMPOSER_IMAGE
|
||||
est utilisé. L'idée est que si la version de PHP installée est
|
||||
suffisante, il n'est pas nécessaire de passer par une image docker.
|
||||
Cette valeur doit être spécifiée avec le format de PHP_VERSION_ID i.e
|
||||
70300 pour PHP 7.3
|
||||
Spécifier 'any' ou 'force' pour forcer l'utilisation de l'image docker
|
||||
* COMPOSER_IMAGE -- Image utilisée pour lancer composer. La valeur par
|
||||
défaut est:
|
||||
$DEFAULT_COMPOSER_IMAGE
|
||||
|
@ -167,11 +173,11 @@ COMMANDES
|
|||
spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
||||
Ce paramétrage est utilisé pour par exemple installer certains
|
||||
packages nécessaire au projet.
|
||||
La commande 'shell' est une extension qui lance un shell bash au lieu de
|
||||
lancer la commande composer, ce qui permet de faire des opérations plus
|
||||
complexes si le besoin s'en fait sentir. NB: le shell est lancé avec
|
||||
l'utilisateur root. La commande alternative 'ushell' lance le shell avec
|
||||
le compte utilisateur.
|
||||
La commande 'rshell' est une extension qui lance un shell bash au lieu
|
||||
de lancer la commande composer, ce qui permet de faire des opérations
|
||||
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
|
||||
avec l'utilisateur root. La commande alternative 'shell' lance le shell
|
||||
avec le compte utilisateur.
|
||||
Pour faciliter l'utilisation dans un script, les premiers arguments
|
||||
peuvent être utilisés pour redéfinir les variables COMPOSER_*, e.g
|
||||
$scriptname composer COMPOSER_IMAGE=none install
|
||||
|
@ -1275,12 +1281,12 @@ EOF
|
|||
function default_local_composer() {
|
||||
# lancement direct
|
||||
case "$1" in
|
||||
rootshell|shell|rootbash|bash)
|
||||
rootshell|rshell|rootbash|rbash)
|
||||
# ewarn parce qu'on est pas root dans ce shell contrairement à ce qui est demandé
|
||||
ewarn "Lancement d'un shell utilisateur"
|
||||
ewarn "Lancement d'un shell utilisateur alors qu'un shell root est demandé"
|
||||
bash "$@"
|
||||
;;
|
||||
usershell|ushell|userbash|ubash)
|
||||
usershell|shell|userbash|bash)
|
||||
estep "Lancement d'un shell utilisateur"
|
||||
bash "$@"
|
||||
;;
|
||||
|
@ -1303,11 +1309,11 @@ function default_docker_composer() {
|
|||
setx group=id -gn; setx group=getent group "$group"
|
||||
setx projdir=pwd
|
||||
case "$1" in
|
||||
rootshell|shell|rootbash|bash)
|
||||
rootshell|rshell|rootbash|rbash)
|
||||
actualcmd='eval "bash $args"'
|
||||
shift
|
||||
;;
|
||||
usershell|ushell|userbash|ubash)
|
||||
usershell|shell|userbash|bash)
|
||||
actualcmd='eval "su-exec \"$user\" bash $args"'
|
||||
shift
|
||||
;;
|
||||
|
@ -1390,6 +1396,7 @@ fi
|
|||
function local_composer() { default_local_composer "$@"; }
|
||||
function docker_composer() { default_docker_composer "$@"; }
|
||||
function auto_composer() {
|
||||
local COMPOSER_PHP=
|
||||
local COMPOSER_IMAGE="$DEFAULT_COMPOSER_IMAGE"
|
||||
local COMPOSER_MACHINE=-u
|
||||
local COMPOSER_CMD=
|
||||
|
@ -1398,6 +1405,7 @@ function auto_composer() {
|
|||
# les premiers arguments peuvent service à redéfinir les variables
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
COMPOSER_PHP=*) setv "$1"; shift;;
|
||||
COMPOSER_IMAGE=*) setv "$1"; shift;;
|
||||
COMPOSER_MACHINE=*) setv "$1"; shift;;
|
||||
COMPOSER_CMD=*) setv "$1"; shift;;
|
||||
|
@ -1406,10 +1414,27 @@ function auto_composer() {
|
|||
esac
|
||||
done
|
||||
|
||||
if [ "$COMPOSER_IMAGE" == none ]; then
|
||||
local_composer "$@"
|
||||
|
||||
local use_image
|
||||
if [ -z "$COMPOSER_PHP" ]; then
|
||||
# pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
|
||||
[ "$COMPOSER_IMAGE" != none ] && use_image=1
|
||||
elif [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
|
||||
use_image=1
|
||||
else
|
||||
# Vérifier la version de PHP
|
||||
php -r '
|
||||
$version = $argv[1];
|
||||
if (strpos($version, ".") !== false) {
|
||||
$version = explode(".", $version);
|
||||
$version = $version[0] * 10000 + $version[1] * 100 + (isset($version[2])? $version[2]: 0);
|
||||
}
|
||||
exit((PHP_VERSION_ID < $version)? 0: 1);
|
||||
' -- "$COMPOSER_PHP" && use_image=1
|
||||
fi
|
||||
|
||||
if [ -n "$use_image" ]; then
|
||||
[ "$COMPOSER_IMAGE" != none ] || die "Vous devez spécifier l'image à utiliser pour composer"
|
||||
|
||||
local PREVIOUS_DOCKER_MACHINE_NAME="$DOCKER_MACHINE_NAME"
|
||||
if [ -n "$COMPOSER_MACHINE" -a "$DOCKER_MACHINE_NAME" != "$COMPOSER_MACHINE" ]; then
|
||||
local -x DOCKER_TLS_VERIFY= DOCKER_HOST= DOCKER_CERT_PATH= DOCKER_MACHINE_NAME=
|
||||
|
@ -1424,6 +1449,8 @@ function auto_composer() {
|
|||
fi
|
||||
|
||||
docker_composer "$@"
|
||||
else
|
||||
local_composer "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -1857,13 +1884,14 @@ NR == 1 { print; next }
|
|||
"$DOCKER" container prune -f || die
|
||||
"$DOCKER" image prune -f || die
|
||||
;;
|
||||
composer|c|ci|cu|cs)
|
||||
composer|c|ci|cu|cr|cs)
|
||||
build_set_options "$update_apps_mode" "$update_apps_origin" "$update_apps_branch"
|
||||
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
||||
[ -f build.scripts.sh ] && source ./build.scripts.sh
|
||||
args=()
|
||||
if [ "$cmd" == ci ]; then args+=(install)
|
||||
elif [ "$cmd" == cu ]; then args+=(update)
|
||||
elif [ "$cmd" == cr ]; then args+=(rshell)
|
||||
elif [ "$cmd" == cs ]; then args+=(shell)
|
||||
fi
|
||||
while [ $# -gt 0 -a "$1" != -- ]; do
|
||||
|
|
Loading…
Reference in New Issue