feat: allow checking if a service is linked to an app
This commit is contained in:
@@ -34,6 +34,7 @@ mysql:expose <name> [port] Expose a mysql service on custom port if provided
|
||||
mysql:import <name> < <file> Import a dump into the mysql service database
|
||||
mysql:info <name> Print the connection information
|
||||
mysql:link <name> <app> Link the mysql service to the app
|
||||
mysql:linked <name> <app> Check if the mysql service is linked to an app
|
||||
mysql:list List all mysql services
|
||||
mysql:logs <name> [-t] Print the most recent log(s) for this service
|
||||
mysql:promote <name> <app> Promote service <name> as DATABASE_URL in <app>
|
||||
|
||||
@@ -288,6 +288,20 @@ service_info() {
|
||||
fi
|
||||
}
|
||||
|
||||
service_is_linked() {
|
||||
declare desc="Links a service to an application"
|
||||
declare SERVICE="$1" APP="$2"
|
||||
update_plugin_scheme_for_app "$APP"
|
||||
local SERVICE_URL=$(service_url "$SERVICE")
|
||||
local EXISTING_CONFIG=$(config_all "$APP")
|
||||
local LINK=$(echo "$EXISTING_CONFIG" | grep "$SERVICE_URL" | cut -d: -f1) || true
|
||||
if [[ -z $LINK ]]; then
|
||||
dokku_log_warn "Service $SERVICE is not linked to $APP"
|
||||
exit 1
|
||||
fi
|
||||
dokku_log_info1 "Service $SERVICE is linked to $APP"
|
||||
}
|
||||
|
||||
service_link() {
|
||||
declare desc="Links a service to an application"
|
||||
declare SERVICE="$1" APP="$2"
|
||||
|
||||
24
subcommands/linked
Executable file
24
subcommands/linked
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/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-linked-cmd() {
|
||||
#E here we check if the lolipop $PLUGIN_COMMAND_PREFIX service is linked to the 'playground' app.
|
||||
#E dokku $PLUGIN_COMMAND_PREFIX:linked lolipop playground
|
||||
#A service, service to run command against
|
||||
#A app, app to run command against
|
||||
declare desc="check if the $PLUGIN_SERVICE service is linked to an app"
|
||||
local cmd="$PLUGIN_COMMAND_PREFIX:linked" 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_is_linked "$SERVICE" "$APP"
|
||||
}
|
||||
|
||||
service-linked-cmd "$@"
|
||||
Reference in New Issue
Block a user