This previously bailed if the response was empty, which in this case is incorrect, as the response isn't based on whether the app is deployed or not.
133 lines
3.9 KiB
Bash
Executable File
133 lines
3.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/domains/functions"
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
cmd-domains-report() {
|
|
declare desc="displays a domains report for one or more apps"
|
|
local cmd="domains:report"
|
|
local INSTALLED_APPS=$(dokku_apps)
|
|
local APP="$2" INFO_FLAG="$3"
|
|
|
|
if [[ -n "$APP" ]] && [[ "$APP" == --* ]]; then
|
|
INFO_FLAG="$APP"
|
|
APP=""
|
|
fi
|
|
|
|
if [[ -z "$APP" ]] && [[ -z "$INFO_FLAG" ]]; then
|
|
INFO_FLAG="true"
|
|
fi
|
|
|
|
if [[ -z "$APP" ]]; then
|
|
for app in $INSTALLED_APPS; do
|
|
cmd-domains-report-single "$app" "$INFO_FLAG" | tee || true
|
|
done
|
|
else
|
|
cmd-domains-report-single "$APP" "$INFO_FLAG"
|
|
fi
|
|
}
|
|
|
|
cmd-domains-report-single() {
|
|
declare APP="$1" INFO_FLAG="$2"
|
|
if [[ "$INFO_FLAG" == "true" ]]; then
|
|
INFO_FLAG=""
|
|
fi
|
|
verify_app_name "$APP"
|
|
local flag_map=(
|
|
"--domains-app-enabled: $(fn-domains-app-enabled "$APP")"
|
|
"--domains-app-vhosts: $(fn-domains-app-vhosts "$APP")"
|
|
"--domains-global-enabled: $(fn-domains-global-enabled)"
|
|
"--domains-global-vhosts: $(fn-domains-global-vhosts)"
|
|
)
|
|
|
|
if [[ -z "$INFO_FLAG" ]]; then
|
|
dokku_log_info2_quiet "$APP domains information"
|
|
for flag in "${flag_map[@]}"; do
|
|
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"
|
|
dokku_log_verbose "$(printf "%-30s %-25s" "${key^}" "${flag#*: }")"
|
|
done
|
|
else
|
|
local match=false
|
|
local value_exists=false
|
|
for flag in "${flag_map[@]}"; do
|
|
valid_flags="${valid_flags} $(echo "$flag" | cut -d':' -f1)"
|
|
if [[ "$flag" == "${INFO_FLAG}:"* ]]; then
|
|
value=${flag#*: }
|
|
size="${#value}"
|
|
if [[ "$size" -ne 0 ]]; then
|
|
echo "$value" && match=true && value_exists=true
|
|
else
|
|
match=true
|
|
fi
|
|
fi
|
|
done
|
|
[[ "$match" == "true" ]] || dokku_log_fail "Invalid flag passed, valid flags:${valid_flags}"
|
|
fi
|
|
}
|
|
|
|
domains_help_content_func() {
|
|
declare desc="return domains plugin help content"
|
|
cat <<help_content
|
|
domains [<app>], [DEPRECATED] Alternative for domains:report
|
|
domains:add <app> <domain> [<domain> ...], Add domains to app
|
|
domains:add-global <domain> [<domain> ...], Add global domain names
|
|
domains:clear <app>, Clear all domains for app
|
|
domains:disable <app>, Disable VHOST support
|
|
domains:enable <app>, Enable VHOST support
|
|
domains:remove <app> <domain> [<domain> ...], Remove domains from app
|
|
domains:remove-global <domain> [<domain> ...], Remove global domain names
|
|
domains:report [<app>] [<flag>], Displays a domains report for one or more apps
|
|
domains:set <app> <domain> [<domain> ...], Set domains for app
|
|
domains:set-global <domain> [<domain> ...], Set global domain names
|
|
help_content
|
|
}
|
|
|
|
domains_help_cmd() {
|
|
if [[ $1 == "domains:help" ]]; then
|
|
echo -e 'Usage: dokku domains[:COMMAND]'
|
|
echo ''
|
|
echo 'Manage vhost domains used by the Dokku proxy.'
|
|
echo ''
|
|
echo 'Additional commands:'
|
|
domains_help_content_func | sort | column -c2 -t -s,
|
|
elif [[ $(ps -o command= $PPID) == *"--all"* ]]; then
|
|
domains_help_content_func
|
|
else
|
|
cat <<help_desc
|
|
domains, Manage vhost domains used by the Dokku proxy
|
|
help_desc
|
|
fi
|
|
}
|
|
|
|
fn-domains-app-enabled() {
|
|
declare APP="$1"
|
|
local DOMAINS_APP_ENABLED=false
|
|
if [[ "$(is_app_vhost_enabled "$APP")" == "true" ]]; then
|
|
DOMAINS_APP_ENABLED=true
|
|
fi
|
|
echo "$DOMAINS_APP_ENABLED"
|
|
}
|
|
|
|
fn-domains-app-vhosts() {
|
|
declare APP="$1"
|
|
local APP_VHOST_FILE="$DOKKU_ROOT/$APP/VHOST"
|
|
if [[ -f "$APP_VHOST_FILE" ]]; then
|
|
tr '\n' ' ' <"$APP_VHOST_FILE"
|
|
fi
|
|
}
|
|
|
|
fn-domains-global-enabled() {
|
|
local DOMAINS_GLOBAL_ENABLED=false
|
|
if [[ "$(is_global_vhost_enabled)" == "true" ]]; then
|
|
DOMAINS_GLOBAL_ENABLED=true
|
|
fi
|
|
echo "$DOMAINS_GLOBAL_ENABLED"
|
|
}
|
|
|
|
fn-domains-global-vhosts() {
|
|
if [[ "$(is_global_vhost_enabled)" == "true" ]]; then
|
|
get_global_vhosts | tr '\n' ' '
|
|
fi
|
|
}
|