#!/usr/bin/env bash set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" source "$PLUGIN_AVAILABLE_PATH/config/functions" is_app_proxy_enabled() { local desc="return true if proxy is enabled; otherwise return false" local APP="$1"; verify_app_name "$APP" local APP_PROXY_ENABLED=true local DOKKU_DISABLE_PROXY=$(config_get "$APP" DOKKU_DISABLE_PROXY) if [[ -n "$DOKKU_DISABLE_PROXY" ]]; then local APP_PROXY_ENABLED=false fi echo $APP_PROXY_ENABLED } get_app_proxy_type() { local desc="return app proxy type" local APP="$1"; verify_app_name "$APP" local APP_PROXY_TYPE="nginx" echo $APP_PROXY_TYPE } proxy_main() { local desc="displays app proxy implementation" local ALL_APPS=$(dokku_apps) if [[ -n "$1" ]]; then local APP="$1" fi local APPS=${APP:="$ALL_APPS"} dokku_col_log_info1_quiet "App Name" "Proxy Type" for app in $APPS; do verify_app_name "$app" dokku_col_log_msg "$app" "$(get_app_proxy_type "$app")" done } proxy_set() { local desc="enable proxy for app" local APP="$1"; verify_app_name "$APP" dokku_log_info1 "proxy:set not implemented" } proxy_enable() { local desc="enable proxy for app" local APP="$1"; verify_app_name "$APP" if [[ "$(is_app_proxy_enabled "$APP")" == "false" ]]; then dokku_log_info1 "Enabling proxy for app ($APP)" [[ "$2" == "--no-restart" ]] && local CONFIG_SET_ARGS=$2 # shellcheck disable=SC2086 config_unset $CONFIG_SET_ARGS $APP DOKKU_DISABLE_PROXY plugn trigger proxy-enable "$APP" else dokku_log_info1 "proxy is already enabled for app ($APP)" fi } proxy_disable() { local desc="disable proxy for app" local APP="$1"; verify_app_name "$APP" if [[ "$(is_app_proxy_enabled "$APP")" == "true" ]]; then dokku_log_info1 "Disabling proxy for app ($APP)" [[ "$2" == "--no-restart" ]] && local CONFIG_SET_ARGS=$2 # shellcheck disable=SC2086 config_set $CONFIG_SET_ARGS $APP DOKKU_DISABLE_PROXY=1 plugn trigger proxy-disable "$APP" else dokku_log_info1 "proxy is already disable for app ($APP)" fi }