From 4f206d732c6466f5197b02090133c72a432edc95 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 20 Mar 2020 22:51:05 +0400 Subject: [PATCH] dk: frontend plus 'transparent' --- dk | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 13 deletions(-) diff --git a/dk b/dk index bd7ce0e..08bd9dc 100755 --- a/dk +++ b/dk @@ -9,6 +9,17 @@ function display_help() { USAGE $scriptname CMDs... +Si une commande commence ou se termine par un underscore, e.g '_ls', elle est +passée telle quelle à docker (en enlevant l'underscore d'abord, bien sûr). Si +une commande ne figure pas dans la liste ci-dessous, elle est passée telle +quelle à docker. + +Certaines commandes ci-dessous ont le même nom que des commandes docker, et +nécessitent un projet docker ou docker-compose. Si ces commandes sont lancées +alors qu'on n'est pas dans un projet docker, alors elles sont passées telle +quelles à docker. ATTENTION: comme la commande est exécutée par docker, cela +veut dire qu'elle n'aura pas la même sématique. + COMMANDES get-profile Afficher le profil courant @@ -70,7 +81,7 @@ COMMANDES Equivalent à --stack -- build -- push args... bpy|bpd [args...] Equivalent à --stack -- build -- push -- deploy args... - service COMMAND SERVICE [args...] + ser|service COMMAND SERVICE [args...] Frontend pour 'docker service COMMAND args... SERVICE' Cette commande ne fonctionne qu'en mode swarm. Il n'est pas nécessaire de préfixer le nom du service avec le nom du stack, pour être cohérent @@ -854,13 +865,15 @@ function auto_build() { update_build_env build_update_apps || return 1 compose_build "$@" - else + elif [ -f Dockerfile ]; then docker_parse_env_args docker_check_name docker_add_build_arg build_date "$(date +%y%m%d)" update_build_env build_update_apps || return 1 docker_build "$@" + else + ${FAKE:+qvals} "$DOCKER" build ${NO_CACHE:+--no-cache} "$@" fi } @@ -892,11 +905,13 @@ function auto_push() { compose_set_env_args update_build_env compose_push "$@" - else + elif [ -f Dockerfile ]; then docker_parse_env_args docker_check_name update_build_env docker_push "$@" + else + ${FAKE:+qvals} "$DOCKER" push "$@" fi } @@ -924,11 +939,13 @@ function auto_up() { compose_set_env_args replace_run_args=(-d) compose_up "$@" - else + elif [ -f Dockerfile ]; then docker_set_env_args docker_check_name set_container_name replace_run_args=(-d --name "$container_name") docker_up "$@" + else + ${FAKE:+qvals} "$DOCKER" run "$@" fi } @@ -952,10 +969,12 @@ function auto_stop() { if [ -f docker-compose.yml ]; then compose_set_env_args compose_stop "$@" - else + elif [ -f Dockerfile ]; then docker_set_env_args docker_check_name set_container_name docker_stop "$@" + else + ${FAKE:+qvals} "$DOCKER" stop "$@" fi } @@ -980,11 +999,13 @@ function auto_logs() { compose_set_env_args replace_logs_args=(-f) compose_logs "$@" - else + elif [ -f Dockerfile ]; then docker_set_env_args docker_check_name set_container_name replace_logs_args=(-f) docker_logs "$@" + else + ${FAKE:+qvals} "$DOCKER" logs "$@" fi } @@ -1014,10 +1035,12 @@ function auto_down() { if [ -f docker-compose.yml ]; then compose_set_env_args compose_down "$@" - else + elif [ -f Dockerfile ]; then docker_set_env_args docker_check_name set_container_name docker_down "$@" + else + ${FAKE:+qvals} "$DOCKER" stop "$@" fi } @@ -1076,7 +1099,7 @@ function auto_run() { ${volume:+-v "$volume"} ) compose_run "$@" - else + elif [ -f Dockerfile ]; then docker_set_env_args docker_check_name set_container_name replace_run_args=( @@ -1085,6 +1108,8 @@ function auto_run() { ${volume:+-v "$volume"} ) docker_run "$@" + else + ${FAKE:+qvals} "$DOCKER" run ${rm:+--rm} ${volume:+-v "$volume"} "$@" fi } @@ -1108,10 +1133,12 @@ function auto_exec() { if [ -f docker-compose.yml ]; then compose_set_env_args compose_exec "$@" - else + elif [ -f Dockerfile ]; then docker_set_env_args docker_check_name set_container_name docker_exec "$@" + else + ${FAKE:+qvals} "$DOCKER" exec "$@" fi } @@ -1167,7 +1194,7 @@ function auto_service() { ;; esac else - die "Impossible de trouver ni docker-compose.yml ni docker-stack.yml" + ${FAKE:+qvals} "$DOCKER" service "$@" fi } @@ -1748,7 +1775,7 @@ while [ $# -gt 0 ]; do enote "Profil $PROFILE" auto_build && auto_push && auto_deploy "${args[@]}" ;; - service) + ser|service) args=() while [ $# -gt 0 -a "$1" != -- ]; do args+=("$1"); shift @@ -1942,8 +1969,22 @@ NR == 1 { print; next } done auto_composer "${args[@]}" ;; + _*|*_) + # transmettre directement à docker + cmd="${cmd#_}" + cmd="${cmd%_}" + args=() + while [ $# -gt 0 -a "$1" != -- ]; do + args+=("$1"); shift + done + "$DOCKER" "$cmd" "${args[@]}" + ;; *) - # transmettre directement à docker pour les autres commandes - exec "$DOCKER" "$cmd" "$@" + # transmettre directement à docker + args=() + while [ $# -gt 0 -a "$1" != -- ]; do + args+=("$1"); shift + done + "$DOCKER" "$cmd" "${args[@]}" esac done