Files
dokku/plugins/nginx-vhosts/command-functions
Jose Diaz-Gonzalez 7ee882c4e7 feat: port nginx :report subcommand to golang
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.
2026-07-07 07:12:59 -04:00

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"
}