diff --git a/commands b/commands index c4a312c..90a1338 100755 --- a/commands +++ b/commands @@ -21,11 +21,7 @@ case "$1" in [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" [[ -z $3 ]] && dokku_log_fail "Please specify an alias for the service" verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; ALIAS_FILE="$SERVICE_ROOT/ALIAS" - - mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" - touch "$ALIAS_FILE" - echo "$3" > "$ALIAS_FILE" + service_set_alias "$2" "$3" ;; $PLUGIN_COMMAND_PREFIX:create) @@ -107,15 +103,7 @@ case "$1" in [[ -z $3 ]] && dokku_log_fail "Please specify an app to run the command on" verify_app_name "$3" verify_service_name "$2" - APP="$3"; SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; LINKS_FILE="$SERVICE_ROOT/LINKS" - - mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" - touch "$LINKS_FILE" - echo "$APP" >> "$LINKS_FILE" - sort "$LINKS_FILE" -u -o "$LINKS_FILE" - - dokku_log_info1 "Restarting app $APP" - dokku ps:restart "$APP" + service_link "$2" "$3" ;; $PLUGIN_COMMAND_PREFIX:unlink) @@ -123,15 +111,7 @@ case "$1" in [[ -z $3 ]] && dokku_log_fail "Please specify an app to run the command on" verify_app_name "$3" verify_service_name "$2" - APP="$3"; SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"; LINKS_FILE="$SERVICE_ROOT/LINKS" - - mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" - touch "$LINKS_FILE" - sed -i "/^$3\$/d" "$LINKS_FILE" - sort "$LINKS_FILE" -u -o "$LINKS_FILE" - - dokku_log_info1 "Restarting app $APP" - dokku ps:restart "$APP" + service_unlink "$2" "$3" ;; $PLUGIN_COMMAND_PREFIX:export) @@ -156,17 +136,7 @@ case "$1" in $PLUGIN_COMMAND_PREFIX:logs) [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" - - ID=$(cat "$SERVICE_ROOT/ID") - - if [[ $3 == "-t" ]]; then - DOKKU_LOGS_ARGS="--follow" - else - DOKKU_LOGS_ARGS="--tail 100" - fi - - docker logs $DOKKU_LOGS_ARGS "$ID" + service_logs "$2" "$3" ;; $PLUGIN_COMMAND_PREFIX:restart) diff --git a/functions b/functions index 7a228de..3f648e6 100755 --- a/functions +++ b/functions @@ -41,7 +41,7 @@ service_alias() { } service_info() { - local SERVICE="$1"; + local SERVICE="$1" local SERVICE_URL=$(service_url "$SERVICE") echo " DSN: $SERVICE_URL" @@ -59,8 +59,47 @@ service_list() { fi } +service_link() { + local APP="$2" + local SERVICE="$1" + local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + local LINKS_FILE="$SERVICE_ROOT/LINKS" + + mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" + touch "$LINKS_FILE" + echo "$APP" >> "$LINKS_FILE" + sort "$LINKS_FILE" -u -o "$LINKS_FILE" + + dokku_log_info1 "Restarting app $APP" + dokku ps:restart "$APP" +} + +service_logs() { + local SERVICE="$1" + local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + local ID=$(cat "$SERVICE_ROOT/ID") + + if [[ $2 == "-t" ]]; then + DOKKU_LOGS_ARGS="--follow" + else + DOKKU_LOGS_ARGS="--tail 100" + fi + + docker logs $DOKKU_LOGS_ARGS "$ID" +} + +service_set_alias() { + local SERVICE="$1" + local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + local ALIAS_FILE="$SERVICE_ROOT/ALIAS" + + mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" + touch "$ALIAS_FILE" + echo "$2" > "$ALIAS_FILE" +} + service_status() { - local SERVICE="$1"; + local SERVICE="$1" local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" local ID="$(cat "$SERVICE_ROOT/ID")" @@ -72,8 +111,23 @@ service_status() { echo "(stopped)" && return 0 } +service_unlink() { + local APP="$2" + local SERVICE="$1" + local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" + local LINKS_FILE="$SERVICE_ROOT/LINKS" + + mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" + touch "$LINKS_FILE" + sed -i "/^$APP\$/d" "$LINKS_FILE" + sort "$LINKS_FILE" -u -o "$LINKS_FILE" + + dokku_log_info1 "Restarting app $APP" + dokku ps:restart "$APP" +} + service_url() { - local SERVICE="$1"; + local SERVICE="$1" local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" local ID="$(cat "$SERVICE_ROOT/ID")"