|
|
|
|
@ -51,14 +51,16 @@ SYSCONF="${ROOTFS}${SYSCONF}"
|
|
|
|
|
[[ $(cat "${FILE_CONFIG}" 2>/dev/null) =~ ($'\n'|^)+"${LINE:1}"($'\n'|$)+ ]] || echo "${LINE:1}" >> "${FILE_CONFIG}"
|
|
|
|
|
else
|
|
|
|
|
# Если в строке нет '=' то пропустить
|
|
|
|
|
# Если строка содержит '=' и имя переменной не содержит пробел, то добавляем как переменная=значение: NAME_VAR=VALUE_VAR
|
|
|
|
|
# Если строка содержит '=' и имя переменной до [] не содержит пробел, то добавляем как переменная=значение: NAME_VAR=VALUE_VAR
|
|
|
|
|
NAME_VAR=${LINE%%=*}
|
|
|
|
|
[[ ${LINE} != ${NAME_VAR} ]] || continue
|
|
|
|
|
[[ ${NAME_VAR} =~ " " ]] && continue
|
|
|
|
|
# Удалим строку только с именем без значения: NAME_VAR=
|
|
|
|
|
[[ -f ${FILE_CONFIG} && $(cat -n ${FILE_CONFIG}) =~ ($'\n'|^)+[[:blank:]]*([[:digit:]]+)[[:blank:]]*"${NAME_VAR}="[^$'\n']*($'\n'|$)+ ]] && sed "${BASH_REMATCH[2]}d" -i "${FILE_CONFIG}"
|
|
|
|
|
[[ ${NAME_VAR%%[*} =~ " " ]] && continue
|
|
|
|
|
# Удалим строку только с именем NAME_VAR=
|
|
|
|
|
#[[ -e ${FILE_CONFIG} && $(cat -n ${FILE_CONFIG}) =~ (^|$'\n')+[[:blank:]]*([[:digit:]]+)[[:blank:]]*"${NAME_VAR}="[^$'\n']*($'\n'|$)+ ]] && sed "${BASH_REMATCH[2]}d" -i "${FILE_CONFIG}"
|
|
|
|
|
# Обработка строк с паролями
|
|
|
|
|
if [[ ${FILE_CONFIG##*/} == "users" && ${NAME_VAR} =~ ^("DEFAULTPASSWD"|"DEFAULTROOTPASSWD"|"NEEDEDUSERS"|"USERADD["|"GROUPADD[") ]]; then
|
|
|
|
|
[[ -e ${FILE_CONFIG} ]] && sed -E "/^[[:blank:]]*$(ere_quote_sed "${NAME_VAR}")=.*/d" -i "${FILE_CONFIG}"
|
|
|
|
|
[[ -e ${FILE_ROOT_USERS} ]] && sed -E "/^[[:blank:]]*$(ere_quote_sed "${NAME_VAR}")=.*/d" -i "${FILE_ROOT_USERS}"
|
|
|
|
|
echo "${LINE}" >> ${FILE_ROOT_USERS}
|
|
|
|
|
if [[ ${NAME_VAR} == @("DEFAULTPASSWD"|"DEFAULTROOTPASSWD"|"NEEDEDUSERS") ]]; then
|
|
|
|
|
true
|
|
|
|
|
@ -69,7 +71,20 @@ SYSCONF="${ROOTFS}${SYSCONF}"
|
|
|
|
|
else
|
|
|
|
|
echo "${LINE}" >> "${FILE_CONFIG}"
|
|
|
|
|
fi
|
|
|
|
|
elif [[ ! ${FILE_CONFIG%/*} =~ ^"${SYSCONF}" ]]; then
|
|
|
|
|
# Если файл указанный не конфигурационный из /etc/ublinux/
|
|
|
|
|
VALUE_VAR=${LINE#*=}
|
|
|
|
|
[[ ${VALUE_VAR} =~ ^[\'\"]+.*[\'\"]+ ]] && VALUE_VAR=${VALUE_VAR:1:-1}
|
|
|
|
|
if ! grep -Eq "^[[:blank:]]*$(ere_quote_grep "${NAME_VAR}=${VALUE_VAR}")[[:blank:]]*$" "${FILE_CONFIG}" 2>/dev/null; then
|
|
|
|
|
if grep -Eq "^[[:blank:]]*$(ere_quote_grep "${NAME_VAR}")=.*$" "${FILE_CONFIG}" 2>/dev/null; then
|
|
|
|
|
sed -E "s/^([[:blank:]]*)($(ere_quote_sed "${NAME_VAR}"))=.*/\1\2=$(ere_quote_sed "${VALUE_VAR}")/g" -i "${FILE_CONFIG}"
|
|
|
|
|
else
|
|
|
|
|
[[ -e ${FILE_CONFIG} ]] && sed -E "/^[[:blank:]]*$(ere_quote_sed "${NAME_VAR}")=.*/d" -i "${FILE_CONFIG}"
|
|
|
|
|
echo "${LINE}" >> "${FILE_CONFIG}"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
[[ -e ${FILE_CONFIG} ]] && sed -E "/^[[:blank:]]*$(ere_quote_sed "${NAME_VAR}")=.*/d" -i "${FILE_CONFIG}"
|
|
|
|
|
echo "${LINE}" >> "${FILE_CONFIG}"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|