diff --git a/plugins/config/commands b/plugins/config/commands index dcb961f7d..5042ad245 100755 --- a/plugins/config/commands +++ b/plugins/config/commands @@ -5,25 +5,7 @@ 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_all "$@" ;; config:get) @@ -35,30 +17,7 @@ case "$1" in ;; 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_unset "$@" ;; config:set-norestart) diff --git a/plugins/config/functions b/plugins/config/functions index d829c3591..bfdd610b2 100644 --- a/plugins/config/functions +++ b/plugins/config/functions @@ -98,6 +98,28 @@ is_config_export() { return 1 } +config_all() { + [[ "$1" == "config" ]] || set -- "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() { [[ "$1" == "config:get" ]] || set -- "config:get" "$@" config_parse_args "$@" @@ -171,3 +193,32 @@ ${var}" dokku ps:restart $APP fi } + +config_unset() { + [[ "$1" == "config:unset" ]] || 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 + +}