Properly replace setting gathered from profiles

This commit is contained in:
Michael Boelen 2016-07-31 17:18:36 +02:00
parent ff38336e0b
commit 9ae1aa749d

View File

@ -133,16 +133,21 @@
AddSetting() { AddSetting() {
if [ $# -eq 3 ]; then if [ $# -eq 3 ]; then
SETTING="$1"
VALUE="$2"
DESCRIPTION="$3"
if [ -z "${SETTINGS_FILE}" ]; then if [ -z "${SETTINGS_FILE}" ]; then
CreateTempFile CreateTempFile
SETTINGS_FILE="${TEMP_FILE}" SETTINGS_FILE="${TEMP_FILE}"
fi fi
FIND=$(egrep "^$1;" ${SETTINGS_FILE}) FIND=$(egrep "^${SETTING};" ${SETTINGS_FILE})
if [ -z "${FIND}" ]; then if [ -z "${FIND}" ]; then
echo "$1;$2;$3;" >> ${SETTINGS_FILE} echo "${SETTING};${VALUE};${DESCRIPTION};" >> ${SETTINGS_FILE}
else else
Debug "Option $1 was already configured, overwriting previous value in ${SETTINGS_FILE}" Debug "Setting '${SETTING}' was already configured, overwriting previous line '${FIND}' in ${SETTINGS_FILE} with value '${VALUE}'"
sed -i -e "s/$1;.*$/$1;$2;$3;/" ${SETTINGS_FILE} # Delete line first, then add new value (inline search and replace is messy)
sed -i -e '/^'"${SETTING}"';/d' ${SETTINGS_FILE}
echo "${SETTING};${VALUE};${DESCRIPTION};" >> ${SETTINGS_FILE}
fi fi
else else
echo "Error: incorrect call to AddSetting. Needs 3 arguments." echo "Error: incorrect call to AddSetting. Needs 3 arguments."