feat: add command to list linked services for a given app

This commit is contained in:
Jose Diaz-Gonzalez
2018-07-21 16:32:00 -04:00
parent f30db928fb
commit 57554f6288
3 changed files with 38 additions and 0 deletions

View File

@@ -17,6 +17,7 @@ sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
## commands
```
postgres:app-links <app> List all postgres service links for a given app
postgres:backup <name> <bucket> (--use-iam) Create a backup of the postgres service to an existing s3 bucket
postgres:backup-auth <name> <aws_access_key_id> <aws_secret_access_key> (<aws_default_region>) (<aws_signature_version>) (<endpoint_url>) Sets up authentication for backups on the postgres service
postgres:backup-deauth <name> Removes backup authentication for the postgres service

View File

@@ -118,6 +118,22 @@ service_alternative_alias() {
echo "$ALIAS"
}
service_app_links() {
declare desc="Outputs all service links for a given app"
declare APP="$1"
local SERVICE LINKED_APP
pushd "$PLUGIN_DATA_ROOT" > /dev/null
for SERVICE in *; do
[[ -f "$SERVICE/LINKS" ]] || continue
for LINKED_APP in $(<"$SERVICE/LINKS"); do
if [[ "$LINKED_APP" == "$APP" ]] ; then
echo "$SERVICE"
fi
done
done
}
service_backup() {
declare desc="Creates a backup of a service to an existing s3 bucket"
declare SERVICE="$1" BUCKET_NAME="$2" USE_IAM_OPTIONAL_FLAG="$3"

21
subcommands/app-links Executable file
View File

@@ -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"
service-app-links-cmd() {
#E list all $PLUGIN_COMMAND_PREFIX services that are linked to the 'playground' app.
#E dokku $PLUGIN_COMMAND_PREFIX:app-links playground
#A app, app to run command against
declare desc="list all $PLUGIN_SERVICE service links for a given app"
local cmd="$PLUGIN_COMMAND_PREFIX:app-links" argv=("$@"); [[ ${argv[0]} == "$cmd" ]] && shift 1
declare APP="$1"
APP=${APP:="$DOKKU_APP_NAME"}
[[ -z "$APP" ]] && dokku_log_fail "Please specify an app to run the command on"
verify_app_name "$APP"
service_app_links "$APP"
}
service-app-links-cmd "$@"