From 6e38dc35e5666e2ceaed37405bc9abad2b692474 Mon Sep 17 00:00:00 2001 From: 3wc <3wc.git@doesthisthing.work> Date: Wed, 28 Oct 2020 02:48:04 +0200 Subject: [PATCH] Fix `run` subcommand --- abra | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/abra b/abra index 8195c52a..67ba5da2 100755 --- a/abra +++ b/abra @@ -609,6 +609,7 @@ sub_app_secret_auto(){ ###### .. app run ... sub_app_run(){ load_instance + load_instance_env if [ -n "$abra___user" ]; then RUN_USER="-u $abra___user" @@ -618,7 +619,7 @@ sub_app_run(){ | grep "${STACK_NAME}_${abra__app_}" | head -n1 | cut -d',' -f1) if [ -z "$CONTAINER" ]; then - error "Can't find a container for ${STACK_NAME}_${abra__app_}" + error "Can't find a container for ${STACK_NAME}_${abra__service_}" exit fi @@ -681,7 +682,8 @@ sub_app_logs (){ ###### .. app cp sub_app_cp() { - require_stack + load_instance + load_instance_env SOURCE="${abra__src_}" DEST="${abra__dst_}" @@ -714,6 +716,19 @@ sub_app_cp() { # abra server .. ####################################### +###### .. server ls +sub_server_ls() { + sub_server_list +} + +sub_server_list() { + get_servers + printf "%s servers:\n\n" "${#SERVERS[@]}" + for SERVER in "${SERVERS[@]}"; do + echo " ${SERVER##*/}" + done +} + ###### .. server init sub_server_init() { export DOCKER_CONTEXT="${abra__host_}" @@ -724,6 +739,7 @@ sub_server_init() { docker network create --driver=overlay proxy --scope swarm || true } +###### .. server [] [] sub_server_add() { require_abra_dir @@ -746,43 +762,35 @@ sub_server_add() { mkdir -p "$ABRA_DIR/servers/$HOST" } +###### .. server delete sub_server_rm() { + sub_server_delete +} +sub_server_delete() { docker context rm "$abra__host_" } +###### .. server use sub_server_use() { docker context use "$abra__host_" } -sub_server_ls() { - sub_server_list -} - -sub_server_list() { - get_servers - printf "%s server(s):\n\n" "${#SERVERS[@]}" - for SERVER in "${SERVERS[@]}"; do - echo " ${SERVER##*/}" - done -} - ####################################### # Misc commands ####################################### -###### Subcommand `upgrade` - +###### .. upgrade sub_upgrade() { curl https://install.abra.autonomic.zone | bash } -###### Docker alias subcommands - +###### .. volume ... sub_stack() { # shellcheck disable=SC2068 docker stack $@ } +###### .. stack ... sub_volume() { # shellcheck disable=SC2068 docker volume $@ @@ -803,8 +811,10 @@ abra() { DOCOPT_PREFIX=abra_ eval "$(docopt "$@")" + # --stack STACK_NAME=$abra___stack + # --env if [ -n "$abra___env" ]; then # shellcheck disable=SC1090 source "$abra___env" || error "Unable to load env from '$abra___env'" @@ -817,6 +827,7 @@ abra() { for SUBCOMMAND in $(declare -Ff | grep 'sub_' | cut -d' ' -f3 | sort -r); do IFS='_' read -r -a PARTS <<< "$SUBCOMMAND" for PART in "${PARTS[@]:1}"; do + # TODO 3wc: probably a better way to check if a function is defined.. VAR=$(eval "echo \$abra_$PART") if [ ! "$VAR" == "true" ]; then continue 2 @@ -825,7 +836,7 @@ abra() { abra__command_=$(IFS="_"; echo "${PARTS[*]:1}") done - # Fallback for non-docopt-defined options + # Use abra__command_ in case `command` is provided (i.e. `volume` or `stack`) CMD="sub_${abra__command_}" if type "$CMD" > /dev/null 2>&1; then # shellcheck disable=SC2086