Handle config values with spaces
This commit is contained in:
committed by
Jose Diaz-Gonzalez
parent
ac5f9a707c
commit
5dbc864060
@@ -25,19 +25,19 @@ if [[ $1 == config ]] || [[ $1 == config:* ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
config_styled_hash () {
|
config_styled_hash () {
|
||||||
vars=`echo -e "$1"`
|
vars="$1"
|
||||||
|
|
||||||
longest=""
|
longest=""
|
||||||
for word in $vars; do
|
while read -r word; do
|
||||||
KEY=`echo $word | cut -d"=" -f1`
|
KEY=`echo $word | cut -d"=" -f1`
|
||||||
if [ ${#KEY} -gt ${#longest} ]; then
|
if [ ${#KEY} -gt ${#longest} ]; then
|
||||||
longest=$KEY
|
longest=$KEY
|
||||||
fi
|
fi
|
||||||
done
|
done <<< "$vars"
|
||||||
|
|
||||||
for word in $vars; do
|
while read -r word; do
|
||||||
KEY=`echo $word | cut -d"=" -f1`
|
KEY=`echo $word | cut -d"=" -f1`
|
||||||
VALUE=`echo $word | cut -d"=" -f2-`
|
VALUE=`echo $word | cut -d"=" -f2- | sed -e "s/^'//" -e "s/'$//"`
|
||||||
|
|
||||||
num_zeros=$((${#longest} - ${#KEY}))
|
num_zeros=$((${#longest} - ${#KEY}))
|
||||||
zeros=" "
|
zeros=" "
|
||||||
@@ -46,7 +46,7 @@ config_styled_hash () {
|
|||||||
num_zeros=$(($num_zeros - 1))
|
num_zeros=$(($num_zeros - 1))
|
||||||
done
|
done
|
||||||
echo "$KEY:$zeros$VALUE"
|
echo "$KEY:$zeros$VALUE"
|
||||||
done
|
done <<< "$vars"
|
||||||
}
|
}
|
||||||
|
|
||||||
config_restart_app() {
|
config_restart_app() {
|
||||||
@@ -80,7 +80,7 @@ case "$1" in
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VARS=`cat $ENV_FILE | grep -Eo "export ([a-zA-Z_][a-zA-Z0-9_]*=.*)" | cut -d" " -f2`
|
VARS=`cat $ENV_FILE | grep -Eo "export ([a-zA-Z_][a-zA-Z0-9_]*=.*)" | cut -d" " -f2-`
|
||||||
|
|
||||||
for var in "$@"; do
|
for var in "$@"; do
|
||||||
if [[ "$var" == "--shell" ]]; then
|
if [[ "$var" == "--shell" ]]; then
|
||||||
@@ -106,7 +106,7 @@ case "$1" in
|
|||||||
|
|
||||||
KEY="$3"
|
KEY="$3"
|
||||||
|
|
||||||
cat $ENV_FILE | grep -Eo "export ([a-zA-Z_][a-zA-Z0-9_]*=.*)" | cut -d" " -f2 | grep "^$KEY=" | cut -d"=" -f2-
|
cat $ENV_FILE | grep -Eo "export ([a-zA-Z_][a-zA-Z0-9_]*=.*)" | grep "^export $KEY=" | cut -d"=" -f2- | sed -e "s/^'//" -e "s/'$//"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
config:set)
|
config:set)
|
||||||
@@ -120,9 +120,9 @@ case "$1" in
|
|||||||
ENV_ADD=""
|
ENV_ADD=""
|
||||||
ENV_TEMP=`cat "${ENV_FILE}"`
|
ENV_TEMP=`cat "${ENV_FILE}"`
|
||||||
RESTART_APP=false
|
RESTART_APP=false
|
||||||
VARS="${*:3}"
|
shift 2
|
||||||
|
|
||||||
for var in $VARS; do
|
for var; do
|
||||||
if [[ $var != *"="* ]]; then
|
if [[ $var != *"="* ]]; then
|
||||||
echo "Usage: dokku config:set APP KEY1=VALUE1 [KEY2=VALUE2 ...]"
|
echo "Usage: dokku config:set APP KEY1=VALUE1 [KEY2=VALUE2 ...]"
|
||||||
echo "Must specify KEY and VALUE to set."
|
echo "Must specify KEY and VALUE to set."
|
||||||
@@ -130,18 +130,20 @@ case "$1" in
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
for var in $VARS; do
|
for var; do
|
||||||
KEY=`echo ${var} | cut -d"=" -f1`
|
KEY=`echo ${var} | cut -d"=" -f1`
|
||||||
VALUE=`echo ${var} | cut -d"=" -f2-`
|
VALUE=`echo ${var} | cut -d"=" -f2-`
|
||||||
|
|
||||||
if [[ $KEY =~ [a-zA-Z_][a-zA-Z0-9_]* ]]; then
|
if [[ $KEY =~ [a-zA-Z_][a-zA-Z0-9_]* ]]; then
|
||||||
RESTART_APP=true
|
RESTART_APP=true
|
||||||
ENV_TEMP=$(echo -e "${ENV_TEMP}" | sed "/^export $KEY=/ d")
|
ENV_TEMP=$(echo -e "${ENV_TEMP}" | sed "/^export $KEY=/ d")
|
||||||
ENV_TEMP="${ENV_TEMP}\nexport ${var}"
|
ENV_TEMP="${ENV_TEMP}\nexport $KEY='$VALUE'"
|
||||||
ENV_ADD=$(echo -e "${ENV_ADD}" | sed "/^$KEY=/ d")
|
ENV_ADD=$(echo -e "${ENV_ADD}" | sed "/^$KEY=/ d")
|
||||||
ENV_ADD="${ENV_ADD}\n${var}"
|
ENV_ADD="${ENV_ADD}$
|
||||||
|
${var}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
ENV_ADD=$(echo "$ENV_ADD" | tail -n +2) #remove first empty line
|
||||||
|
|
||||||
if [ $RESTART_APP ]; then
|
if [ $RESTART_APP ]; then
|
||||||
echo "-----> Setting config vars and restarting $APP"
|
echo "-----> Setting config vars and restarting $APP"
|
||||||
|
|||||||
Reference in New Issue
Block a user