refactor: split out label subcommands into distinct commands

This commit is contained in:
Jose Diaz-Gonzalez
2025-11-16 16:30:56 -05:00
parent 4eafd3b5b7
commit 12cc31427b
13 changed files with 146 additions and 83 deletions

View File

@@ -11,25 +11,27 @@ cmd-proxy-label-show() {
declare PROXY="$1" APP="$2" PASSED_LABEL_NAME="$3"
shift 2
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:label command"
verify_app_name "$APP"
if [[ -n "$PASSED_LABEL_NAME" ]]; then
fn-proxy-show-label "$PROXY" "$APP" "$PASSED_LABEL_NAME"
return
fi
fn-proxy-display-labels "$PROXY" "$APP"
return 0
}
cmd-proxy-label-add() {
declare desc="adds container label to app for specified proxy"
declare cmd="proxy:label:add"
[[ "$1" == "$cmd" ]] && shift 1
declare PROXY="$1" APP="$2" PASSED_LABEL_NAME="$3" PASSED_LABEL_VALUE="$4"
if [[ -z "$PASSED_LABEL_NAME" ]]; then
dokku_log_fail "Please specify a container label for the app"
fi
if [[ -z "$PASSED_LABEL_VALUE" ]]; then
dokku_log_fail "Please specify a value for the container label"
fi
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:label command"
[[ -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"
local proxy_labels_file_path="$(fn-proxy-get-labels-file-path "$PROXY" "$APP")"
touch "$proxy_labels_file_path"
@@ -41,11 +43,13 @@ cmd-proxy-label-add() {
cmd-proxy-label-remove() {
declare desc="removes container label from app for specified proxy"
declare cmd="proxy:label:remove"
[[ "$1" == "$cmd" ]] && shift 1
declare PROXY="$1" APP="$2" PASSED_LABEL_NAME="$3"
if [[ -z "$PASSED_LABEL_NAME" ]]; then
dokku_log_fail "Please specify a container label for the app"
fi
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:label command"
[[ -z "$PASSED_LABEL_NAME" ]] && dokku_log_fail "Please specify a container label for the app"
verify_app_name "$APP"
local proxy_labels_file_path="$(fn-proxy-get-labels-file-path "$PROXY" "$APP")"
if [[ ! -s "$proxy_labels_file_path" ]]; then
@@ -57,28 +61,3 @@ cmd-proxy-label-remove() {
local all_proxy_labels="$(echo -e "${all_proxy_labels}" | sed -E "s/^--label ['\"]${escaped_label_name}=.*\$//")"
echo -e "${all_proxy_labels}" | sed '/^$/d' | sort -u >"$proxy_labels_file_path"
}
cmd-proxy-label() {
declare desc="manage proxy labels for an app"
declare cmd="proxy:label"
shift 1 # the command comes from the upstream plugin
declare PROXY="$1" ACTION="$2" APP="$3" PASSED_LABEL_NAME="$4" PASSED_LABEL_VALUE="$5"
[[ -z "$PROXY" ]] && dokku_log_fail "Error invoking proxy:label command"
verify_app_name "$APP"
if [[ -n "$PASSED_LABEL_NAME" ]] && [[ ! "$PASSED_LABEL_NAME" =~ ^$PROXY ]]; then
dokku_log_fail "Please specify a valid $PROXY label name for the app"
fi
if [[ "$action" == "show" ]]; then
cmd-proxy-label-show "$PROXY" "$APP" "$PASSED_LABEL_NAME"
return 0
elif [[ "$ACTION" == "set" ]]; then
cmd-proxy-label-add "$PROXY" "$APP" "$PASSED_LABEL_NAME" "$PASSED_LABEL_VALUE"
elif [[ "$action" == "unset" ]]; then
cmd-proxy-label-remove "$PROXY" "$APP" "$PASSED_LABEL_NAME"
else
dokku_log_fail "Please specify a valid action ('set', 'unset' or 'show')"
fi
}