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 Arrêter les services et supprimer l'environnement
r|run SERVICE [COMMAND] r|run SERVICE [COMMAND]
Démarrer le service en mode interactif avec la commande spécifiée 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 x|exec SERVICE COMMAND
Lancer une commande dans le container correspondant au service spécifié, Lancer une commande dans le container correspondant au service spécifié,
qui doit être en fonctionnement qui doit être en fonctionnement
@ -789,17 +796,48 @@ function default_docker_run() {
function compose_run() { default_compose_run "$@"; } function compose_run() { default_compose_run "$@"; }
function docker_run() { default_docker_run "$@"; } function docker_run() { default_docker_run "$@"; }
function auto_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_env_args env_args
local -a replace_run_args run_args local -a replace_run_args run_args
local -a replace_user_args user_args local -a replace_user_args user_args
local project_name container_name local project_name container_name
if [ -f docker-compose.yml ]; then if [ -f docker-compose.yml ]; then
compose_set_env_args 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 "$@" compose_run "$@"
else else
docker_set_env_args docker_set_env_args
docker_check_name set_container_name 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 "$@" docker_run "$@"
fi fi
} }