This standardization makes it somewhat easier to read stacktraces as the command names are all uniform, so it will be slightly easier to scan trace output.
111 lines
3.3 KiB
Bash
Executable File
111 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/proxy/functions"
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
cmd-proxy-report() {
|
|
declare desc="displays a proxy report for one or more apps"
|
|
local cmd="proxy: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-proxy-report-single "$app" "$INFO_FLAG" | tee || true
|
|
done
|
|
else
|
|
cmd-proxy-report-single "$APP" "$INFO_FLAG"
|
|
fi
|
|
}
|
|
|
|
cmd-proxy-report-single() {
|
|
declare APP="$1" INFO_FLAG="$2"
|
|
if [[ "$INFO_FLAG" == "true" ]]; then
|
|
INFO_FLAG=""
|
|
fi
|
|
verify_app_name "$APP"
|
|
local flag_map=(
|
|
"--proxy-enabled: $(fn-proxy-enabled "$APP")"
|
|
"--proxy-type: $(get_app_proxy_type "$APP")"
|
|
"--proxy-port-map: $(get_app_proxy_port_map "$APP")"
|
|
)
|
|
|
|
if [[ -z "$INFO_FLAG" ]]; then
|
|
dokku_log_info2_quiet "$APP proxy 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}"
|
|
[[ "$value_exists" == "true" ]] || dokku_log_fail "not deployed"
|
|
fi
|
|
}
|
|
|
|
fn-proxy-enabled() {
|
|
declare APP="$1"
|
|
local PROXY_ENABLED=false
|
|
|
|
if [[ "$(is_app_proxy_enabled "$APP")" == "true" ]]; then
|
|
PROXY_ENABLED=true
|
|
fi
|
|
echo "$PROXY_ENABLED"
|
|
}
|
|
|
|
proxy_help_content_func() {
|
|
declare desc="return proxy plugin help content"
|
|
cat <<help_content
|
|
proxy <app>, [DEPRECATED] Show proxy settings for app
|
|
proxy:disable <app>, Disable proxy for app
|
|
proxy:enable <app>, Enable proxy for app
|
|
proxy:ports <app>, List proxy port mappings for app
|
|
proxy:ports-add <app> [<scheme>:<host-port>:<container-port>...], Add proxy port mappings to an app
|
|
proxy:ports-clear <app>, Clear all proxy port mappings for an app
|
|
proxy:ports-remove <app> [<host-port>|<scheme>:<host-port>:<container-port>...], Remove specific proxy port mappings from an app
|
|
proxy:ports-set <app> [<scheme>:<host-port>:<container-port>...], Set proxy port mappings for an app
|
|
proxy:report [<app>] [<flag>], Displays a proxy report for one or more apps
|
|
proxy:set <app> <proxy-type>, Set proxy type for app
|
|
help_content
|
|
}
|
|
|
|
cmd-proxy-help() {
|
|
if [[ $1 == "proxy:help" ]]; then
|
|
echo -e 'Usage: dokku proxy[:COMMAND]'
|
|
echo ''
|
|
echo 'Manage the proxy used by dokku on a per app.'
|
|
echo ''
|
|
echo 'Additional commands:'
|
|
proxy_help_content_func | sort | column -c2 -t -s,
|
|
elif [[ $(ps -o command= $PPID) == *"--all"* ]]; then
|
|
proxy_help_content_func
|
|
else
|
|
cat <<help_desc
|
|
proxy, Manage the proxy used by dokku on a per app
|
|
help_desc
|
|
fi
|
|
}
|