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