diff --git a/dk b/dk index 55d53bb..49073ed 100755 --- a/dk +++ b/dk @@ -32,6 +32,13 @@ COMMANDES Arrêter les services et supprimer l'environnement r|run SERVICE [COMMAND] Démarrer le service en mode interactif avec la commande spécifiée + Les options suivantes sont supportées, mais il faut les spécifier avant + SERVICE: + * pour docker et docker-compose: --volume + * uniquement pour docker-compose: --detach, -e, --label, --no-deps, + --service-ports, --use-aliases + Par défaut, --rm est activé; utiliser --no-rm pour ne pas supprimer le + container après utilisation. x|exec SERVICE COMMAND Lancer une commande dans le container correspondant au service spécifié, qui doit être en fonctionnement @@ -789,17 +796,48 @@ function default_docker_run() { function compose_run() { default_compose_run "$@"; } function docker_run() { default_docker_run "$@"; } function auto_run() { + eval "$(utools_local parse_opts)" + local detach no_deps rm=1 service_ports use_aliases volume + local -a envs labels + args=( + + + -d,--detach detach=1 + -e: '$add@ envs -e; add@ envs' + -l:,--label: '$add@ labels -l; add@ labels' + --no-deps no_deps=1 + --no-rm rm= + --rm rm=1 + --service-ports service_ports=1 + --use-aliases use_aliases=1 + -v:,--volume: volume= + @ args -- "$@" + ) + parse_opts "${args[@]}" && set -- "${args[@]}" || { eerror "$args"; return 1; } + local -a replace_env_args env_args local -a replace_run_args run_args local -a replace_user_args user_args local project_name container_name if [ -f docker-compose.yml ]; then compose_set_env_args + replace_run_args=( + ${detach:+-d} + "${envs[@]}" "${labels[@]}" + ${no_deps:+--no-deps} + ${rm:+--rm} + ${service_ports:+--service-ports} + ${use_aliases:+--use-aliases} + ${volume:+-v "$volume"} + ) compose_run "$@" else docker_set_env_args docker_check_name set_container_name - replace_run_args=(--name "$container_name") + replace_run_args=( + --name "$container_name" + ${rm:+--rm} + ${volume:+-v "$volume"} + ) docker_run "$@" fi }