-
-
Notifications
You must be signed in to change notification settings - Fork 2k
initial pass at config plugin arguments refactor #1291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,8 +2,6 @@ | |
| set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x | ||
| source "$(dirname $0)/../common/functions" | ||
|
|
||
| ENV_FILE="$DOKKU_ROOT/$2/ENV" | ||
| ENV_FILE_TEMP="$DOKKU_ROOT/$2/ENV.tmp" | ||
| config_create () { | ||
| [ -f $ENV_FILE ] || { | ||
| touch $ENV_FILE | ||
|
|
@@ -24,7 +22,7 @@ config_styled_hash () { | |
|
|
||
| while read -r word; do | ||
| KEY=$(echo $word | cut -d"=" -f1) | ||
| VALUE=$(echo $word | cut -d"=" -f2- | sed -e "s/^'//" -e "s/'$//") | ||
| VALUE=$(echo $word | cut -d"=" -f2- | sed -e "s/^'//" -e "s/'$//" -e "s/\$$//g") | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. strips trailing |
||
|
|
||
| num_zeros=$((${#longest} - ${#KEY})) | ||
| zeros=" " | ||
|
|
@@ -38,6 +36,8 @@ config_styled_hash () { | |
|
|
||
| config_write() { | ||
| ENV_TEMP="$1" | ||
| ENV_FILE_TEMP="${ENV_FILE}.tmp" | ||
|
|
||
| echo "$ENV_TEMP" | sed '/^$/d' | sort > $ENV_FILE_TEMP | ||
| if ! cmp -s $ENV_FILE $ENV_FILE_TEMP; then | ||
| cp -f $ENV_FILE_TEMP $ENV_FILE | ||
|
|
@@ -46,14 +46,43 @@ config_write() { | |
| rm -f $ENV_FILE_TEMP | ||
| } | ||
|
|
||
| parse_config_args() { | ||
| case "$2" in | ||
| --global) | ||
| ENV_FILE="$DOKKU_ROOT/ENV" | ||
| DOKKU_CONFIG_TYPE="global" | ||
| DOKKU_CONFIG_RESTART=false | ||
| ;; | ||
| --no-restart) | ||
| APP="$3" | ||
| ENV_FILE="$DOKKU_ROOT/$APP/ENV" | ||
| DOKKU_CONFIG_RESTART=false | ||
| DOKKU_CONFIG_TYPE="app" | ||
| set -- "${@:1:1}" "${@:3}" | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. removes |
||
| esac | ||
|
|
||
| APP=${APP:="$2"} | ||
| ENV_FILE=${ENV_FILE:="$DOKKU_ROOT/$APP/ENV"} | ||
| DOKKU_CONFIG_TYPE=${DOKKU_CONFIG_TYPE:="app"} | ||
| DOKKU_CONFIG_RESTART=${DOKKU_CONFIG_RESTART:=true} | ||
|
|
||
| if [[ "$DOKKU_CONFIG_TYPE" = "app" ]]; then | ||
| if [[ -z $APP ]]; then | ||
| echo "Please specify an app to run the command on" >&2 && exit 1 | ||
| else | ||
| verify_app_name "$2" | ||
| fi | ||
| fi | ||
| export APP ENV_FILE DOKKU_CONFIG_TYPE DOKKU_CONFIG_RESTART | ||
| } | ||
|
|
||
| case "$1" in | ||
| config) | ||
| [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 | ||
| verify_app_name "$2" | ||
| APP="$2" | ||
|
|
||
| parse_config_args "$@" | ||
| config_create | ||
| [[ ! -s $ENV_FILE ]] && echo "$APP has no config vars" && exit 1 | ||
|
|
||
| [[ "$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-) | ||
|
|
||
|
|
@@ -64,14 +93,13 @@ case "$1" in | |
| fi | ||
| done | ||
|
|
||
| dokku_log_info2_quiet "$APP config vars" | ||
|
|
||
| dokku_log_info2_quiet "$DOKKU_CONFIG_TYPE config vars" | ||
| config_styled_hash "$VARS" | ||
| ;; | ||
|
|
||
| config:get) | ||
| [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 | ||
| verify_app_name "$2" | ||
| APP="$2" | ||
| parse_config_args "$@" | ||
|
|
||
| if [[ -z $3 ]]; then | ||
| echo "Usage: dokku config:get APP KEY" | ||
|
|
@@ -90,26 +118,8 @@ case "$1" in | |
| ;; | ||
|
|
||
| config:set) | ||
| [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 | ||
| verify_app_name "$2" | ||
| APP="$2" | ||
|
|
||
| if [[ -z "${*:3}" ]]; then | ||
| echo "Usage: dokku config:set APP KEY1=VALUE1 [KEY2=VALUE2 ...]" | ||
| echo "Must specify KEY and VALUE to set." | ||
| exit 1 | ||
| fi | ||
|
|
||
| shift 2 | ||
| dokku config:set-norestart $APP "$@" | ||
| dokku_log_info1 "Restarting app $APP" | ||
| dokku ps:restart $APP | ||
| ;; | ||
|
|
||
| config:set-norestart) | ||
| [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 | ||
| verify_app_name "$2" | ||
| APP="$2" | ||
| parse_config_args "$@" | ||
| [[ "$2" = "--no-restart" ]] && set -- "${@:1:1}" "${@:3}" | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. couldn't get around doing this again as |
||
|
|
||
| if [[ -z "${*:3}" ]]; then | ||
| echo "Usage: dokku config:set APP KEY1=VALUE1 [KEY2=VALUE2 ...]" | ||
|
|
@@ -153,29 +163,16 @@ ${var}" | |
|
|
||
| config_write "$ENV_TEMP" | ||
| fi | ||
| ;; | ||
|
|
||
| config:unset) | ||
| [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 | ||
| verify_app_name "$2" | ||
| APP="$2" | ||
|
|
||
| if [[ -z $3 ]]; then | ||
| echo "Usage: dokku config:unset APP KEY1 [KEY2 ...]" | ||
| echo "Must specify KEY to unset." | ||
| exit 1 | ||
| if [[ "$DOKKU_CONFIG_RESTART" == "true" ]]; then | ||
| dokku_log_info1 "Restarting app $APP" | ||
| dokku ps:restart $APP | ||
| fi | ||
| ;; | ||
|
|
||
| shift 2 | ||
| dokku config:unset-norestart $APP "$@" | ||
| dokku_log_info1 "Restarting app $APP" | ||
| dokku ps:restart $APP | ||
| ;; | ||
|
|
||
| config:unset-norestart) | ||
| [[ -z $2 ]] && echo "Please specify an app to run the command on" && exit 1 | ||
| verify_app_name "$2" | ||
| APP="$2" | ||
| config:unset) | ||
| parse_config_args "$@" | ||
| [[ "$2" = "--no-restart" ]] && set -- "${@:1:1}" "${@:3}" | ||
|
|
||
| if [[ -z $3 ]]; then | ||
| echo "Usage: dokku config:unset APP KEY1 [KEY2 ...]" | ||
|
|
@@ -193,14 +190,31 @@ ${var}" | |
|
|
||
| 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<<EOF | ||
| config <app> Display the config vars for an app | ||
| config:get <app> KEY Display a config value for an app | ||
| config:set <app> KEY1=VALUE1 [KEY2=VALUE2 ...] Set one or more config vars | ||
| config:unset <app> KEY1 [KEY2 ...] Unset one or more config vars | ||
| config (<app>|--global) Display all global or app-specific config vars | ||
| config:get (<app>|--global) KEY Display a global or app-specific config value | ||
| config:set (<app>|--global) KEY1=VALUE1 [KEY2=VALUE2 ...] Set one or more config vars | ||
| config:unset (<app>|--global) KEY1 [KEY2 ...] Unset one or more config vars | ||
| EOF | ||
| ;; | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lol when are these rando-spaces going away?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When you fix them, duh! 😈
EDIT: or when I do #1292
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:D