#!/usr/bin/env bash set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$PLUGIN_PATH/common/functions" source "$PLUGIN_PATH/config/functions" case "$1" in config) config_parse_args "$@" config_create "$ENV_FILE" is_config_export "$@" && config_export "$DOKKU_CONFIG_TYPE" "$APP" && exit 0 [[ "$APP" ]] && DOKKU_CONFIG_TYPE=$APP [[ ! -s $ENV_FILE ]] && echo "no config vars for $DOKKU_CONFIG_TYPE" && exit 1 VARS=$(grep -Eo "export ([a-zA-Z_][a-zA-Z0-9_]*=.*)" $ENV_FILE | cut -d" " -f2-) for var in "$@"; do if [[ "$var" == "--shell" ]]; then echo $VARS exit 0 fi done dokku_log_info2_quiet "$DOKKU_CONFIG_TYPE config vars" config_styled_hash "$VARS" ;; config:get) config_get "$@" ;; config:set) config_set "$@" ;; config:unset) config_parse_args "$@" [[ "$2" = "--no-restart" ]] && set -- "${@:1:1}" "${@:3}" if [[ -z $3 ]]; then echo "Usage: dokku config:unset APP KEY1 [KEY2 ...]" echo "Must specify KEY to unset." exit 1 fi config_create "$ENV_FILE" ENV_TEMP=$(cat "${ENV_FILE}") VARS="${*:3}" for var in $VARS; do dokku_log_info1 "Unsetting $var" ENV_TEMP=$(echo -e "${ENV_TEMP}" | sed "/^export $var=/ d") config_write "$ENV_TEMP" done if [[ "$DOKKU_CONFIG_RESTART" == "true" ]]; then dokku_log_info1 "Restarting app $APP" dokku ps:restart $APP fi ;; config:set-norestart) dokku_log_info2 "$1 is deprecated as of v0.3.22" shift 1 dokku config:set --no-restart "$@" ;; config:unset-norestart) dokku_log_info2 "$1 is deprecated as of v0.3.22" shift 1 dokku config:unset --no-restart "$@" ;; help | config:help) cat && cat<|--global), Display all global or app-specific config vars config:get (|--global) KEY, Display a global or app-specific config value config:set (|--global) KEY1=VALUE1 [KEY2=VALUE2 ...], Set one or more config vars config:unset (|--global) KEY1 [KEY2 ...], Unset one or more config vars EOF ;; *) exit $DOKKU_NOT_IMPLEMENTED_EXIT ;; esac