diff --git a/commands b/commands index a6a5b0c..414ab7e 100755 --- a/commands +++ b/commands @@ -15,192 +15,72 @@ if [[ -d "$PLUGIN_DATA_ROOT/*" ]]; then fi case "$1" in - $PLUGIN_COMMAND_PREFIX:create) - [[ -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" - - 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" - fi - - mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" - password=$(openssl rand -hex 16) - echo "$password" > "$SERVICE_ROOT/PASSWORD" - chmod 640 "$SERVICE_ROOT/PASSWORD" - touch "$LINKS_FILE" - - if [[ -n $POSTGRES_CUSTOM_ENV ]]; then - echo "$POSTGRES_CUSTOM_ENV" | tr ';' "\n" > "$SERVICE_ROOT/ENV" - else - echo "" > "$SERVICE_ROOT/ENV" - fi - service_create_container "$SERVICE" - ;; - - $PLUGIN_COMMAND_PREFIX:destroy) - [[ -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" - SERVICE_NAME="$(get_service_name "$SERVICE")" - - [[ -s "$LINKS_FILE" ]] && dokku_log_fail "Cannot delete linked service" - - [[ "$3" == "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." - dokku_log_warn "To proceed, type \"$SERVICE\"" - echo "" - - read -rp "> " service_name - if [[ "$service_name" != "$SERVICE" ]]; then - dokku_log_warn "Confirmation did not match $SERVICE. Aborted." - exit 1 - fi - fi - - dokku_log_info1 "Deleting $SERVICE" - if [[ -n $(docker ps -aq -f name="$SERVICE_NAME") ]]; then - service_stop "$SERVICE" - sleep 1 - - dokku_log_verbose_quiet "Removing container" - docker rm -v "$SERVICE_NAME" > /dev/null - sleep 1 - else - dokku_log_verbose_quiet "No container exists for $SERVICE" - fi - - dokku_log_verbose_quiet "Removing data" - docker run --rm -v "$SERVICE_ROOT/data:/data" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" chmod 777 -R /data - rm -rf "$SERVICE_ROOT" - - dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE" - ;; - - $PLUGIN_COMMAND_PREFIX:link) - [[ -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" - ;; - - $PLUGIN_COMMAND_PREFIX:unlink) - [[ -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" - ;; - - $PLUGIN_COMMAND_PREFIX:export) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" - SERVICE_NAME="$(get_service_name "$SERVICE")" - DATABASE_NAME="$(get_database_name "$SERVICE")" - PASSWORD=$(cat "$SERVICE_ROOT/PASSWORD") - - [[ -n $SSH_TTY ]] && stty -opost - docker exec "$SERVICE_NAME" env PGPASSWORD="$PASSWORD" pg_dump -Fc --no-acl --no-owner -h localhost -U postgres -w "$DATABASE_NAME" - status=$? - [[ -n $SSH_TTY ]] && stty opost - exit $status - ;; - - $PLUGIN_COMMAND_PREFIX:import) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" - SERVICE_NAME="$(get_service_name "$SERVICE")" - DATABASE_NAME="$(get_database_name "$SERVICE")" - PASSWORD=$(cat "$SERVICE_ROOT/PASSWORD") - - if [[ -t 0 ]]; then - dokku_log_fail "No data provided on stdin." - fi - docker exec -i "$SERVICE_NAME" env PGPASSWORD="$PASSWORD" pg_restore -h localhost -cO -d "$DATABASE_NAME" -U postgres -w - ;; - - $PLUGIN_COMMAND_PREFIX:logs) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_logs "$2" "$3" - ;; - - $PLUGIN_COMMAND_PREFIX:start) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_start "$2" - ;; - - $PLUGIN_COMMAND_PREFIX:stop) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_stop "$2" - ;; - - $PLUGIN_COMMAND_PREFIX:restart) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_stop "$2" - service_start "$2" - dokku_log_info1 "Please call dokku ps:restart on all linked apps" + $PLUGIN_COMMAND_PREFIX:clone) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/clone" "$@" ;; $PLUGIN_COMMAND_PREFIX:connect) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - SERVICE="$2"; SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE" - DATABASE_NAME="$(get_database_name "$SERVICE")" - SERVICE_NAME="$(get_service_name "$SERVICE")" - has_tty && SERVICE_TTY_OPTS="-t" - - docker exec -i $SERVICE_TTY_OPTS "$SERVICE_NAME" psql -h localhost -U postgres "$DATABASE_NAME" + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/connect" "$@" ;; - $PLUGIN_COMMAND_PREFIX:info) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_info "$2" + $PLUGIN_COMMAND_PREFIX:create) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/create" "$@" ;; - $PLUGIN_COMMAND_PREFIX:list) - service_list + $PLUGIN_COMMAND_PREFIX:destroy) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/destroy" "$@" ;; - $PLUGIN_COMMAND_PREFIX:clone) - [[ -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" - 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 - dokku_log_info1 "Done" + $PLUGIN_COMMAND_PREFIX:export) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/export" "$@" ;; $PLUGIN_COMMAND_PREFIX:expose) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_port_expose "$2" "${@:3}" + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/expose" "$@" ;; - $PLUGIN_COMMAND_PREFIX:unexpose) - [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" - verify_service_name "$2" - service_port_unexpose "$2" + $PLUGIN_COMMAND_PREFIX:import) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/import" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:info) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/info" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:link) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/link" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:list) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/list" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:logs) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/logs" "$@" ;; $PLUGIN_COMMAND_PREFIX:promote) - [[ -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" + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/promote" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:restart) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/restart" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:start) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/start" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:stop) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/stop" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:unexpose) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/unexpose" "$@" + ;; + + $PLUGIN_COMMAND_PREFIX:unlink) + "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/subcommands/unlink" "$@" ;; help | $PLUGIN_COMMAND_PREFIX:help) diff --git a/functions b/functions index 89717e5..bb8fd6a 100755 --- a/functions +++ b/functions @@ -271,7 +271,7 @@ service_create_container() { dokku_log_verbose_quiet "Securing connection to database" service_stop "$SERVICE" > /dev/null - docker run --rm -i -v "$SERVICE_ROOT/data:/var/lib/postgresql/data" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" bash -s < "$(dirname "$0")/scripts/enable_ssl.sh" &> /dev/null + docker run --rm -i -v "$SERVICE_ROOT/data:/var/lib/postgresql/data" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" bash -s < "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/scripts/enable_ssl.sh" &> /dev/null PREVIOUS_ID=$(docker ps -f status=exited | grep -e "$SERVICE_NAME$" | awk '{print $1}') || true docker start "$PREVIOUS_ID" > /dev/null diff --git a/subcommands/clone b/subcommands/clone new file mode 100755 index 0000000..aa9546f --- /dev/null +++ b/subcommands/clone @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" + 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 + dokku_log_info1 "Done" +} + +postgres-clone-cmd "$@" diff --git a/subcommands/connect b/subcommands/connect new file mode 100755 index 0000000..bf2c081 --- /dev/null +++ b/subcommands/connect @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" + DATABASE_NAME="$(get_database_name "$SERVICE")" + SERVICE_NAME="$(get_service_name "$SERVICE")" + has_tty && SERVICE_TTY_OPTS="-t" + + docker exec -i $SERVICE_TTY_OPTS "$SERVICE_NAME" psql -h localhost -U postgres "$DATABASE_NAME" +} + +postgres-connect-cmd "$@" diff --git a/subcommands/create b/subcommands/create new file mode 100755 index 0000000..eba15e6 --- /dev/null +++ b/subcommands/create @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" + + 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" + fi + + mkdir -p "$SERVICE_ROOT" || dokku_log_fail "Unable to create service directory" + password=$(openssl rand -hex 16) + echo "$password" > "$SERVICE_ROOT/PASSWORD" + chmod 640 "$SERVICE_ROOT/PASSWORD" + touch "$LINKS_FILE" + + if [[ -n $POSTGRES_CUSTOM_ENV ]]; then + echo "$POSTGRES_CUSTOM_ENV" | tr ';' "\n" > "$SERVICE_ROOT/ENV" + else + echo "" > "$SERVICE_ROOT/ENV" + fi + service_create_container "$SERVICE" +} + +postgres-create-cmd "$@" diff --git a/subcommands/destroy b/subcommands/destroy new file mode 100755 index 0000000..21eb71f --- /dev/null +++ b/subcommands/destroy @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" + SERVICE_NAME="$(get_service_name "$SERVICE")" + + [[ -s "$LINKS_FILE" ]] && dokku_log_fail "Cannot delete linked service" + + [[ "$3" == "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." + dokku_log_warn "To proceed, type \"$SERVICE\"" + echo "" + + read -rp "> " service_name + if [[ "$service_name" != "$SERVICE" ]]; then + dokku_log_warn "Confirmation did not match $SERVICE. Aborted." + exit 1 + fi + fi + + dokku_log_info1 "Deleting $SERVICE" + if [[ -n $(docker ps -aq -f name="$SERVICE_NAME") ]]; then + service_stop "$SERVICE" + sleep 1 + + dokku_log_verbose_quiet "Removing container" + docker rm -v "$SERVICE_NAME" > /dev/null + sleep 1 + else + dokku_log_verbose_quiet "No container exists for $SERVICE" + fi + + dokku_log_verbose_quiet "Removing data" + docker run --rm -v "$SERVICE_ROOT/data:/data" "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION" chmod 777 -R /data + rm -rf "$SERVICE_ROOT" + + dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE" +} + +postgres-destroy-cmd "$@" diff --git a/subcommands/export b/subcommands/export new file mode 100755 index 0000000..81e83b3 --- /dev/null +++ b/subcommands/export @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" + SERVICE_NAME="$(get_service_name "$SERVICE")" + DATABASE_NAME="$(get_database_name "$SERVICE")" + PASSWORD=$(cat "$SERVICE_ROOT/PASSWORD") + + [[ -n $SSH_TTY ]] && stty -opost + docker exec "$SERVICE_NAME" env PGPASSWORD="$PASSWORD" pg_dump -Fc --no-acl --no-owner -h localhost -U postgres -w "$DATABASE_NAME" + status=$? + [[ -n $SSH_TTY ]] && stty opost + exit $status +} + +postgres-export-cmd "$@" diff --git a/subcommands/expose b/subcommands/expose new file mode 100755 index 0000000..5e5b5b3 --- /dev/null +++ b/subcommands/expose @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-expose-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_port_expose "$2" "${@:3}" +} + +postgres-expose-cmd "$@" diff --git a/subcommands/import b/subcommands/import new file mode 100755 index 0000000..6143adc --- /dev/null +++ b/subcommands/import @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" + SERVICE_NAME="$(get_service_name "$SERVICE")" + DATABASE_NAME="$(get_database_name "$SERVICE")" + PASSWORD=$(cat "$SERVICE_ROOT/PASSWORD") + + if [[ -t 0 ]]; then + dokku_log_fail "No data provided on stdin." + fi + docker exec -i "$SERVICE_NAME" env PGPASSWORD="$PASSWORD" pg_restore -h localhost -cO -d "$DATABASE_NAME" -U postgres -w +} + +postgres-import-cmd "$@" diff --git a/subcommands/info b/subcommands/info new file mode 100755 index 0000000..87cdffa --- /dev/null +++ b/subcommands/info @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-info-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_info "$2" +} + +postgres-info-cmd "$@" diff --git a/subcommands/link b/subcommands/link new file mode 100755 index 0000000..17e0baf --- /dev/null +++ b/subcommands/link @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" +} + +postgres-link-cmd "$@" diff --git a/subcommands/list b/subcommands/list new file mode 100755 index 0000000..f1f0158 --- /dev/null +++ b/subcommands/list @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-list-cmd() { + service_list +} + +postgres-list-cmd "$@" diff --git a/subcommands/logs b/subcommands/logs new file mode 100755 index 0000000..d45e663 --- /dev/null +++ b/subcommands/logs @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-logs-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_logs "$2" "$3" +} + +postgres-logs-cmd "$@" diff --git a/subcommands/promote b/subcommands/promote new file mode 100755 index 0000000..9686f03 --- /dev/null +++ b/subcommands/promote @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" +} + +postgres-promote-cmd "$@" diff --git a/subcommands/restart b/subcommands/restart new file mode 100755 index 0000000..e6d5d32 --- /dev/null +++ b/subcommands/restart @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-restart-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_stop "$2" + service_start "$2" + dokku_log_info1 "Please call dokku ps:restart on all linked apps" +} + +postgres-restart-cmd "$@" diff --git a/subcommands/start b/subcommands/start new file mode 100755 index 0000000..fd62941 --- /dev/null +++ b/subcommands/start @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-start-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_start "$2" +} + +postgres-start-cmd "$@" diff --git a/subcommands/stop b/subcommands/stop new file mode 100755 index 0000000..ef7d5ef --- /dev/null +++ b/subcommands/stop @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-stop-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_stop "$2" +} + +postgres-stop-cmd "$@" diff --git a/subcommands/unexpose b/subcommands/unexpose new file mode 100755 index 0000000..965c249 --- /dev/null +++ b/subcommands/unexpose @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-unexpose-cmd() { + [[ -z $2 ]] && dokku_log_fail "Please specify a name for the service" + verify_service_name "$2" + service_port_unexpose "$2" +} + +postgres-unexpose-cmd "$@" diff --git a/subcommands/unlink b/subcommands/unlink new file mode 100755 index 0000000..bd6ca28 --- /dev/null +++ b/subcommands/unlink @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/config" +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$PLUGIN_BASE_PATH/common/functions" +source "$(dirname "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")/functions" + +postgres-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" +} + +postgres-unlink-cmd "$@"