diff --git a/files/board/arpl/overlayfs/opt/arpl/include/functions.sh b/files/board/arpl/overlayfs/opt/arpl/include/functions.sh index b1c83ae1..9b7b3d5d 100644 --- a/files/board/arpl/overlayfs/opt/arpl/include/functions.sh +++ b/files/board/arpl/overlayfs/opt/arpl/include/functions.sh @@ -146,3 +146,25 @@ function arrayExistItem() { done return ${EXISTS} } + +############################################################################### +# Replace/remove/add values in .conf K=V file +# 1 - name +# 2 - new_val +# 3 - path +function _set_conf_kv() { + # Delete + if [ -z "$2" ]; then + sed -i "$3" -e "s/^$1=.*$//" + return $?; + fi + + # Replace + if grep -q "^$1=" "$3"; then + sed -i "$3" -e "s\"^$1=.*\"$1=\\\"$2\\\"\"" + return $? + fi + + # Add if doesn't exist + echo "$1=\"$2\"" >> $3 +} diff --git a/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh b/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh index ab46c354..05d950df 100755 --- a/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh +++ b/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh @@ -46,7 +46,7 @@ declare -A ADDONS # Read synoinfo and addons from config while IFS="=" read KEY VALUE; do - [ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}" + [ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}" done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}") while IFS="=" read KEY VALUE; do [ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}" @@ -62,7 +62,7 @@ done < <(readModelArray "${MODEL}" "builds.${BUILD}.patch") # Patch /etc/synoinfo.conf echo -n "." for KEY in ${!SYNOINFO[@]}; do - sed -i "s|^${KEY}=.*|${KEY}=\"${SYNOINFO[${KEY}]}\"|" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog + _set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog done # Patch /sbin/init.post