mirror of
https://github.com/dokku/dokku.git
synced 2026-07-11 04:51:57 +02:00
The bash :report implementation for the nginx-vhosts plugin is replaced with a compiled golang binary that reuses the plugin's existing golang property getters, so every raw, global and computed key is unchanged while collection runs in parallel and json is marshalled directly. The global report keeps its existing behaviour of surfacing only the global keys.
87 lines
2.3 KiB
Bash
87 lines
2.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/nginx-vhosts/functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/nginx-vhosts/internal-functions"
|
|
|
|
cmd-nginx-show-config() {
|
|
declare desc="display app nginx config"
|
|
declare cmd="nginx:show-config"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
declare APP="$1"
|
|
local proxy_type
|
|
|
|
verify_app_name "$APP"
|
|
proxy_type="$(plugn trigger proxy-type "$APP")"
|
|
|
|
local DOKKU_SCHEDULER=$(get_app_scheduler "$APP")
|
|
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]] && [[ "$DOKKU_SCHEDULER" != "null" ]]; then
|
|
plugn trigger scheduler-proxy-config "$DOKKU_SCHEDULER" "$APP" "$proxy_type"
|
|
return $?
|
|
fi
|
|
|
|
if [[ "$proxy_type" != "nginx" ]]; then
|
|
dokku_log_fail "This command is only available for apps with the nginx proxy type"
|
|
fi
|
|
|
|
if [[ ! -f "$DOKKU_ROOT/$APP/nginx.conf" ]]; then
|
|
dokku_log_fail "No nginx.conf exists for $APP"
|
|
fi
|
|
|
|
cat "$DOKKU_ROOT/$APP/nginx.conf"
|
|
}
|
|
|
|
cmd-nginx-start() {
|
|
declare desc="starts the nginx server"
|
|
declare cmd="nginx:start"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
fn-plugin-property-write "nginx" "--global" "proxy-status" "started"
|
|
fn-nginx-vhosts-nginx-init-cmd "enable"
|
|
fn-nginx-vhosts-nginx-init-cmd "start"
|
|
}
|
|
|
|
cmd-nginx-stop() {
|
|
declare desc="stops the nginx server"
|
|
declare cmd="nginx:stop"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
fn-plugin-property-write "nginx" "--global" "proxy-status" "stopped"
|
|
fn-nginx-vhosts-nginx-init-cmd "stop"
|
|
fn-nginx-vhosts-nginx-init-cmd "disable"
|
|
}
|
|
|
|
cmd-nginx-reload() {
|
|
declare desc="reloads the nginx server config"
|
|
declare cmd="nginx:reload"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
local NGINX_LOCATION EXIT_CODE
|
|
NGINX_LOCATION=$(get_nginx_location)
|
|
if [[ -z "$NGINX_LOCATION" ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
set +e
|
|
sudo "$NGINX_LOCATION" -t &>/dev/null
|
|
EXIT_CODE=$?
|
|
set -e
|
|
if [[ "$EXIT_CODE" -ne "0" ]]; then
|
|
sudo "$NGINX_LOCATION" -t
|
|
exit "$EXIT_CODE"
|
|
fi
|
|
|
|
fn-nginx-vhosts-nginx-init-cmd "reload"
|
|
}
|
|
|
|
cmd-nginx-validate-config() {
|
|
declare desc="validates and optionally cleans up invalid nginx configurations"
|
|
declare cmd="nginx:validate-config"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
declare APP="$1" FLAG="$2"
|
|
|
|
validate_nginx "$APP" "$FLAG"
|
|
}
|