|
|
@@ -96,12 +96,31 @@ EOF
|
|
|
# prevent messages from clobbering the tarball when using stdout
|
|
|
[ "$CONF_BACKUP" = "-" ] && export VERBOSE=0
|
|
|
|
|
|
+
|
|
|
+list_conffiles() {
|
|
|
+ awk '
|
|
|
+ BEGIN { conffiles = 0 }
|
|
|
+ /^Conffiles:/ { conffiles = 1; next }
|
|
|
+ !/^ / { conffiles = 0; next }
|
|
|
+ conffiles == 1 { print }
|
|
|
+ ' /usr/lib/opkg/status
|
|
|
+}
|
|
|
+
|
|
|
+list_changed_conffiles() {
|
|
|
+ # Cannot handle spaces in filenames - but opkg cannot either...
|
|
|
+ list_conffiles | while read file csum; do
|
|
|
+ [ -r "$file" ] || continue
|
|
|
+
|
|
|
+ echo "${csum} ${file}" | sha256sum -sc - || echo "$file"
|
|
|
+ done
|
|
|
+}
|
|
|
+
|
|
|
add_uci_conffiles() {
|
|
|
local file="$1"
|
|
|
( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
|
|
|
/etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \
|
|
|
-type f -o -type l 2>/dev/null;
|
|
|
- opkg list-changed-conffiles ) | sort -u > "$file"
|
|
|
+ list_changed_conffiles ) | sort -u > "$file"
|
|
|
return 0
|
|
|
}
|
|
|
|