2025-03-22 22:01:00 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
|
|
|
source "$PLUGIN_AVAILABLE_PATH/proxy/functions"
|
|
|
|
|
set -eo pipefail
|
|
|
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
|
|
2025-11-16 18:12:28 -05:00
|
|
|
cmd-proxy-labels-show() {
|
2025-03-22 22:01:00 +00:00
|
|
|
declare desc="show a proxy label for an app"
|
2025-11-16 18:12:28 -05:00
|
|
|
declare cmd="proxy:labels:show"
|
2025-03-22 22:01:00 +00:00
|
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
|
|
|
declare PROXY="$1" APP="$2" PASSED_LABEL_NAME="$3"
|
|
|
|
|
|
2025-11-16 18:47:13 -05:00
|
|
|
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:labels:show command"
|
2025-11-16 16:30:56 -05:00
|
|
|
verify_app_name "$APP"
|
|
|
|
|
|
2025-03-22 22:01:00 +00:00
|
|
|
if [[ -n "$PASSED_LABEL_NAME" ]]; then
|
|
|
|
|
fn-proxy-show-label "$PROXY" "$APP" "$PASSED_LABEL_NAME"
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fn-proxy-display-labels "$PROXY" "$APP"
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-16 18:12:28 -05:00
|
|
|
cmd-proxy-labels-add() {
|
2025-03-22 22:01:00 +00:00
|
|
|
declare desc="adds container label to app for specified proxy"
|
2025-11-16 18:12:28 -05:00
|
|
|
declare cmd="proxy:labels:add"
|
2025-11-16 16:30:56 -05:00
|
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
2025-03-22 22:01:00 +00:00
|
|
|
declare PROXY="$1" APP="$2" PASSED_LABEL_NAME="$3" PASSED_LABEL_VALUE="$4"
|
|
|
|
|
|
2025-11-16 18:47:13 -05:00
|
|
|
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:labels:add command"
|
2025-11-16 16:30:56 -05:00
|
|
|
[[ -z "$PASSED_LABEL_NAME" ]] && dokku_log_fail "Please specify a container label for the app"
|
|
|
|
|
[[ -z "$PASSED_LABEL_VALUE" ]] && dokku_log_fail "Please specify a value for the container label"
|
|
|
|
|
verify_app_name "$APP"
|
2025-03-22 22:01:00 +00:00
|
|
|
|
|
|
|
|
local proxy_labels_file_path="$(fn-proxy-get-labels-file-path "$PROXY" "$APP")"
|
|
|
|
|
touch "$proxy_labels_file_path"
|
2025-11-16 18:12:28 -05:00
|
|
|
cmd-proxy-labels-remove "$PROXY" "$APP" "$PASSED_LABEL_NAME" >/dev/null
|
2025-11-16 18:44:21 -05:00
|
|
|
echo "${PASSED_LABEL_NAME}=${PASSED_LABEL_VALUE}" >>"$proxy_labels_file_path"
|
2025-03-22 22:01:00 +00:00
|
|
|
local all_proxy_labels="$(<"$proxy_labels_file_path")"
|
|
|
|
|
echo -e "${all_proxy_labels}" | sed '/^$/d' | sort -u >"$proxy_labels_file_path"
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-16 18:12:28 -05:00
|
|
|
cmd-proxy-labels-remove() {
|
2025-03-22 22:01:00 +00:00
|
|
|
declare desc="removes container label from app for specified proxy"
|
2025-11-16 18:12:28 -05:00
|
|
|
declare cmd="proxy:labels:remove"
|
2025-11-16 16:30:56 -05:00
|
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
2025-03-22 22:01:00 +00:00
|
|
|
declare PROXY="$1" APP="$2" PASSED_LABEL_NAME="$3"
|
|
|
|
|
|
2025-11-16 18:47:13 -05:00
|
|
|
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:labels:remove command"
|
2025-11-16 16:30:56 -05:00
|
|
|
[[ -z "$PASSED_LABEL_NAME" ]] && dokku_log_fail "Please specify a container label for the app"
|
|
|
|
|
verify_app_name "$APP"
|
2025-03-22 22:01:00 +00:00
|
|
|
|
|
|
|
|
local proxy_labels_file_path="$(fn-proxy-get-labels-file-path "$PROXY" "$APP")"
|
|
|
|
|
if [[ ! -s "$proxy_labels_file_path" ]]; then
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
local all_proxy_labels="$(<"$proxy_labels_file_path")"
|
|
|
|
|
local escaped_label_name="$(fn-proxy-escape-extended-sed "$PASSED_LABEL_NAME")"
|
2025-11-16 18:44:21 -05:00
|
|
|
local all_proxy_labels="$(echo -e "${all_proxy_labels}" | sed -E "s/^${escaped_label_name}=.*\$//")"
|
2025-03-22 22:01:00 +00:00
|
|
|
echo -e "${all_proxy_labels}" | sed '/^$/d' | sort -u >"$proxy_labels_file_path"
|
|
|
|
|
}
|