dk: support de certaines options pour dk run

This commit is contained in:
Jephté Clain 2019-06-25 11:02:52 +04:00
parent c97bc6a92e
commit 458ccd3df1
1 changed files with 39 additions and 1 deletions

40
dk
View File

@ -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
}