dk: support de composer shell

This commit is contained in:
Jephté Clain 2019-10-02 22:16:40 +04:00
parent 2b5ed18ee3
commit ce98445e41
1 changed files with 23 additions and 8 deletions

31
dk
View File

@ -136,9 +136,10 @@ COMMANDES
X|prune
Supprimer les containers et les images inutilisées
composer|ci|cu [args...]
Frontend pour lancer composer à l'intérieur d'un container. 'ci' est un
alias pour 'composer install' et 'cu' un alias pour 'composer update'
composer|ci|cu|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'
Le répertoire \$HOME est monté à l'intérieur du container et le script
composer.phar du projet est utilisé le cas échéant.
L'image utilisée pour lancer composer est indiquée par la variable
@ -146,6 +147,9 @@ COMMANDES
$DEFAULT_COMPOSER_IMAGE
Cette image doit disposer de la commande 'su-exec' afin de pouvoir
lancer la commande avec l'utilisateur courant.
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.
OPTIONS générales
(ces options sont communes à toutes les commandes)
@ -1208,10 +1212,22 @@ function auto_composer() {
else docker_set_env_args
fi
local user group projdir args
local user group projdir
local actualcmd args
setx user=id -un; setx user=getent passwd "$user"
setx group=id -gn; setx group=getent group "$group"
setx projdir=pwd
case "$1" in
shell|bash)
shift
actualcmd='eval "su-exec \"$user\" bash $args"'
;;
*)
actualcmd='eval "su-exec \"$user\" \"$composer\" $args"'
;;
esac
setx args=qvals "$@"
local -a cmd
@ -1241,9 +1257,7 @@ else
echo "ERROR: unable to find composer"
exit 1
fi
eval "su-exec \"$user\" \"$composer\" $args"
'
'"$actualcmd"
)
"${cmd[@]}"
}
@ -1665,13 +1679,14 @@ NR == 1 { print; next }
docker container prune -f || die
docker image prune -f || die
;;
composer|c|ci|cu)
composer|c|ci|cu|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" == cs ]; then args+=(shell)
fi
while [ $# -gt 0 -a "$1" != -- ]; do
args+=("$1"); shift