From ddf428c035f9cc655a66a902893f18830f991e11 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 15 May 2016 23:56:32 -0400 Subject: [PATCH] Conform to function declaration standards - declare desc variable - declare all positional arguments - set the cmd - properly handle DOKKU_APP_NAME --- commands | 2 +- subcommands/clone | 13 ++++++++----- subcommands/connect | 10 +++++++--- subcommands/create | 10 +++++++--- subcommands/destroy | 13 +++++++++---- subcommands/export | 10 +++++++--- subcommands/expose | 10 +++++++--- subcommands/import | 10 +++++++--- subcommands/info | 10 +++++++--- subcommands/link | 15 ++++++++++----- subcommands/list | 3 +++ subcommands/logs | 10 +++++++--- subcommands/promote | 15 ++++++++++----- subcommands/restart | 12 ++++++++---- subcommands/start | 10 +++++++--- subcommands/stop | 10 +++++++--- subcommands/unexpose | 10 +++++++--- subcommands/unlink | 15 ++++++++++----- 18 files changed, 129 insertions(+), 59 deletions(-) diff --git a/commands b/commands index f38310e..450327f 100755 --- a/commands +++ b/commands @@ -89,7 +89,7 @@ case "$1" in declare desc="return $PLUGIN_COMMAND_PREFIX plugin help content" cat< , Create container then copy data from into - $PLUGIN_COMMAND_PREFIX:connect , Connect via telnet to a $PLUGIN_SERVICE service + $PLUGIN_COMMAND_PREFIX:connect , Connect via mongo to a $PLUGIN_SERVICE service $PLUGIN_COMMAND_PREFIX:create , Create a $PLUGIN_SERVICE service $PLUGIN_COMMAND_PREFIX:destroy , Delete the $PLUGIN_SERVICE service and stop its container if there are no links left $PLUGIN_COMMAND_PREFIX:export , Export a dump of the $PLUGIN_SERVICE service database diff --git a/subcommands/clone b/subcommands/clone index a8f60d3..fecc7ed 100755 --- a/subcommands/clone +++ b/subcommands/clone @@ -5,11 +5,14 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-clone-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - [[ -z $3 ]] && dokku_log_fail "Please specify a name for the new service" - verify_service_name "$2" - SERVICE="$2" - NEW_SERVICE="$3" + declare desc="create container then copy data from into " + local cmd="$PLUGIN_COMMAND_PREFIX:clone" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" NEW_SERVICE="$2" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + [[ -z "$NEW_SERVICE" ]] && dokku_log_fail "Please specify a name for the new service" + + verify_service_name "$SERVICE" dokku "$PLUGIN_COMMAND_PREFIX:create" "$NEW_SERVICE" dokku_log_info1 "Copying data from $SERVICE to $NEW_SERVICE" dokku "$PLUGIN_COMMAND_PREFIX:export" "$SERVICE" | dokku "$PLUGIN_COMMAND_PREFIX:import" "$NEW_SERVICE" > /dev/null 2>&1 || true diff --git a/subcommands/connect b/subcommands/connect index 59d50c6..2ae3dcc 100755 --- a/subcommands/connect +++ b/subcommands/connect @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-connect-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + declare desc="connect via mongo to a $PLUGIN_SERVICE service" + local cmd="$PLUGIN_COMMAND_PREFIX:connect" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" SERVICE_NAME="$(get_service_name "$SERVICE")" PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")" has_tty && SERVICE_TTY_OPTS="-t" diff --git a/subcommands/create b/subcommands/create index 30b48a1..11ee3d8 100755 --- a/subcommands/create +++ b/subcommands/create @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-create-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - [[ ! -d "$PLUGIN_DATA_ROOT/$2" ]] || dokku_log_fail "$PLUGIN_SERVICE service $2 already exists" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; LINKS_FILE="$SERVICE_ROOT/LINKS" + declare desc="create a $PLUGIN_SERVICE service" + local cmd="$PLUGIN_COMMAND_PREFIX:create" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + [[ ! -d "$PLUGIN_DATA_ROOT/$SERVICE" ]] || dokku_log_fail "$PLUGIN_SERVICE service $SERVICE already exists" + SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; LINKS_FILE="$SERVICE_ROOT/LINKS" if ! docker images | grep -e "^$PLUGIN_IMAGE " | grep -q " $PLUGIN_IMAGE_VERSION " ; then docker pull "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" || dokku_log_fail "$PLUGIN_SERVICE image $PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION pull failed" diff --git a/subcommands/destroy b/subcommands/destroy index 3cacf76..cd8e34c 100755 --- a/subcommands/destroy +++ b/subcommands/destroy @@ -5,14 +5,18 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-destroy-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; LINKS_FILE="$SERVICE_ROOT/LINKS" + declare desc="delete the $PLUGIN_SERVICE service and stop its container if there are no links left" + local cmd="$PLUGIN_COMMAND_PREFIX:destroy" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" FORCE_DESTROY="$2" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; LINKS_FILE="$SERVICE_ROOT/LINKS" SERVICE_NAME="$(get_service_name "$SERVICE")" [[ -s "$LINKS_FILE" ]] && dokku_log_fail "Cannot delete linked service" - [[ "$3" == "force" ]] && DOKKU_APPS_FORCE_DELETE=1 + [[ "$FORCE_DESTROY" == "force" ]] && DOKKU_APPS_FORCE_DELETE=1 if [[ -z "$DOKKU_APPS_FORCE_DELETE" ]]; then dokku_log_warn "WARNING: Potentially Destructive Action" dokku_log_warn "This command will destroy $SERVICE $PLUGIN_SERVICE service." @@ -28,6 +32,7 @@ mongo-destroy-cmd() { dokku_log_info1 "Deleting $SERVICE" if [[ -n $(docker ps -aq -f name="$SERVICE_NAME") ]]; then + dokku_log_verbose_quiet "Deleting container data" service_stop "$SERVICE" sleep 1 diff --git a/subcommands/export b/subcommands/export index faf62c2..35407c7 100755 --- a/subcommands/export +++ b/subcommands/export @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-export-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + declare desc="export a dump of the $PLUGIN_SERVICE service database" + local cmd="$PLUGIN_COMMAND_PREFIX:export" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" SERVICE_NAME="$(get_service_name "$SERVICE")" PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")" diff --git a/subcommands/expose b/subcommands/expose index 2791cd5..7bde056 100755 --- a/subcommands/expose +++ b/subcommands/expose @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-expose-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_port_expose "$2" "${@:3}" + declare desc="expose a $PLUGIN_SERVICE service on custom port if provided (random port otherwise)" + local cmd="$PLUGIN_COMMAND_PREFIX:expose" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_port_expose "$SERVICE" "${@:2}" } mongo-expose-cmd "$@" diff --git a/subcommands/import b/subcommands/import index 32b9f99..6279a05 100755 --- a/subcommands/import +++ b/subcommands/import @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-import-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + declare desc="import a dump into the $PLUGIN_SERVICE service database" + local cmd="$PLUGIN_COMMAND_PREFIX:import" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" SERVICE_NAME="$(get_service_name "$SERVICE")" PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")" diff --git a/subcommands/info b/subcommands/info index a2c6f85..daf1cd8 100755 --- a/subcommands/info +++ b/subcommands/info @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-info-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_info "$2" + declare desc="print the connection information" + local cmd="$PLUGIN_COMMAND_PREFIX:info" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_info "$SERVICE" } mongo-info-cmd "$@" diff --git a/subcommands/link b/subcommands/link index 0d8e43c..1671724 100755 --- a/subcommands/link +++ b/subcommands/link @@ -5,11 +5,16 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-link-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - [[ -z $3 ]] && dokku_log_fail "Please specify an app to run the command on" - verify_app_name "$3" - verify_service_name "$2" - service_link "$2" "$3" + declare desc="link the $PLUGIN_SERVICE service to the app" + local cmd="$PLUGIN_COMMAND_PREFIX:link" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" APP="$2" + APP=${APP:="$DOKKU_APP_NAME"} + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + [[ -z "$APP" ]] && dokku_log_fail "Please specify an app to run the command on" + verify_app_name "$APP" + verify_service_name "$SERVICE" + service_link "$SERVICE" "$APP" } mongo-link-cmd "$@" diff --git a/subcommands/list b/subcommands/list index f4b50f3..b4547e4 100755 --- a/subcommands/list +++ b/subcommands/list @@ -5,6 +5,9 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-list-cmd() { + declare desc="list all $PLUGIN_SERVICE services" + local cmd="$PLUGIN_COMMAND_PREFIX:list" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + service_list } diff --git a/subcommands/logs b/subcommands/logs index 5383b83..c39489b 100755 --- a/subcommands/logs +++ b/subcommands/logs @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-logs-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_logs "$2" "$3" + declare desc="print the most recent log(s) for this service" + local cmd="$PLUGIN_COMMAND_PREFIX:logs" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" TAIL="$2" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_logs "$SERVICE" "$TAIL" } mongo-logs-cmd "$@" diff --git a/subcommands/promote b/subcommands/promote index 33912e9..23bc919 100755 --- a/subcommands/promote +++ b/subcommands/promote @@ -5,11 +5,16 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-promote-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - [[ -z $3 ]] && dokku_log_fail "Please specify an app to run the command on" - verify_service_name "$2" - verify_app_name "$3" - promote "$2" "$3" + declare desc="promote service as ${PLUGIN_DEFAULT_ALIAS}_URL in " + local cmd="$PLUGIN_COMMAND_PREFIX:promote" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" APP="$2" + APP=${APP:="$DOKKU_APP_NAME"} + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + [[ -z "$APP" ]] && dokku_log_fail "Please specify an app to run the command on" + verify_service_name "$SERVICE" + verify_app_name "$APP" + promote "$SERVICE" "$APP" } mongo-promote-cmd "$@" diff --git a/subcommands/restart b/subcommands/restart index a9ef4d5..62f576c 100755 --- a/subcommands/restart +++ b/subcommands/restart @@ -5,10 +5,14 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-restart-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_stop "$2" - service_start "$2" + declare desc="graceful shutdown and restart of the $PLUGIN_SERVICE service container" + local cmd="$PLUGIN_COMMAND_PREFIX:restart" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_stop "$SERVICE" + service_start "$SERVICE" dokku_log_info1 "Please call dokku ps:restart on all linked apps" } diff --git a/subcommands/start b/subcommands/start index 7394151..53362d6 100755 --- a/subcommands/start +++ b/subcommands/start @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-start-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_start "$2" + declare desc="start a previously stopped $PLUGIN_SERVICE service" + local cmd="$PLUGIN_COMMAND_PREFIX:start" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_start "$SERVICE" } mongo-start-cmd "$@" diff --git a/subcommands/stop b/subcommands/stop index b496eda..d9293ab 100755 --- a/subcommands/stop +++ b/subcommands/stop @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-stop-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_stop "$2" + declare desc="stop a running $PLUGIN_SERVICE service" + local cmd="$PLUGIN_COMMAND_PREFIX:stop" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_stop "$SERVICE" } mongo-stop-cmd "$@" diff --git a/subcommands/unexpose b/subcommands/unexpose index 5326221..9ddccea 100755 --- a/subcommands/unexpose +++ b/subcommands/unexpose @@ -5,9 +5,13 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-unexpose-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_port_unexpose "$2" + declare desc="unexpose a previously exposed $PLUGIN_SERVICE service" + local cmd="$PLUGIN_COMMAND_PREFIX:unexpose" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$SERVICE" + service_port_unexpose "$SERVICE" } mongo-unexpose-cmd "$@" diff --git a/subcommands/unlink b/subcommands/unlink index eb315b9..61d3ab8 100755 --- a/subcommands/unlink +++ b/subcommands/unlink @@ -5,11 +5,16 @@ source "$PLUGIN_BASE_PATH/common/functions" source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" mongo-unlink-cmd() { - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - [[ -z $3 ]] && dokku_log_fail "Please specify an app to run the command on" - verify_app_name "$3" - verify_service_name "$2" - service_unlink "$2" "$3" + declare desc="unlink the $PLUGIN_SERVICE service from the app" + local cmd="$PLUGIN_COMMAND_PREFIX:unlink" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1 + declare SERVICE="$1" APP="$2" + APP=${APP:="$DOKKU_APP_NAME"} + + [[ -z "$SERVICE" ]] && dokku_log_fail "Please specify a name for the service" + [[ -z "$APP" ]] && dokku_log_fail "Please specify an app to run the command on" + verify_app_name "$APP" + verify_service_name "$SERVICE" + service_unlink "$SERVICE" "$APP" } mongo-unlink-cmd "$@"