diff --git a/dk b/dk index 1693d33..d39a03c 100755 --- a/dk +++ b/dk @@ -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