summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang W <wxjstz@126.com>2023-12-05 04:48:19 +0800
committerPaul Donald <newtwen@gmail.com>2023-12-04 23:56:57 +0100
commit581339cce15d7732b2e9542a86bdefcc3c094596 (patch)
treed5aff333b29f094eebd18d5d9f55077a2273b42e
parent2ba84595f2f1bfc6dc43c8780ffd9da1200a9d42 (diff)
luci-lib-nixio: Fix add_luci_conffiles adding duplicate files (#6568)
* luci-lib-nixio: Fix add_luci_conffiles adding duplicate files add_luci_conffiles does not check whether the file already exists when adding the file, which may result in redundant backups in the sysupgrade backup. Signed-off-by: Xiang W <wxjstz@126.com> (cherry picked from commit c2f679962ddf7f6545adacfcf3068370825c43a9)
-rw-r--r--libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh17
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh b/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh
index 77399b9872..d5117f9d89 100644
--- a/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh
+++ b/libs/luci-lib-nixio/root/lib/upgrade/luci-add-conffiles.sh
@@ -1,15 +1,26 @@
add_luci_conffiles()
{
+ add_luci_conffiles_helper()
+ {
+ [ ! -f "$1" ] && return
+ grep -q "$1" "$2" && return
+ echo "$1" >> "$2"
+ }
+
local filelist="$1"
# save ssl certs
if [ -d /etc/nixio ]; then
- find /etc/nixio -type f >> $filelist
+ find /etc/nixio -type f | while read ff; do
+ add_luci_conffiles_helper "$ff" "$filelist"
+ done
fi
# save uhttpd certs
- [ -f "/etc/uhttpd.key" ] && echo /etc/uhttpd.key >> $filelist
- [ -f "/etc/uhttpd.crt" ] && echo /etc/uhttpd.crt >> $filelist
+ add_luci_conffiles_helper /etc/uhttpd.key "$filelist"
+ add_luci_conffiles_helper /etc/uhttpd.crt "$filelist"
+
+ unset -f add_luci_conffiles_helper
}
sysupgrade_init_conffiles="$sysupgrade_init_conffiles add_luci_conffiles"