# 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
}
}
# hooks
-sysupgrade_image_check="fwtool_check_image platform_check_image"
-sysupgrade_pre_upgrade="fwtool_pre_upgrade"
+sysupgrade_image_check="fwtool_check_signature fwtool_check_image platform_check_image"
if [ $SAVE_OVERLAY = 1 ]; then
[ ! -d /overlay/upper/etc ] && {
v "Saving config files..."
[ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
tar c${TAR_V}zf "$conf_tar" -T "$CONFFILES" 2>/dev/null
+ if [ "$?" -ne 0 ]; then
+ echo "Failed to create the configuration backup."
+ rm -f "$conf_tar"
+ exit 1
+ fi
rm -f "$CONFFILES"
}
}
case "$IMAGE" in
- http://*)
+ http://*|\
+ https://*)
wget -O/tmp/sysupgrade.img "$IMAGE"
IMAGE=/tmp/sysupgrade.img
;;
rm -f /tmp/sysupgrade.always.overwrite.bootdisk.partmap
fi
-run_hooks "" $sysupgrade_pre_upgrade
-
install_bin /sbin/upgraded
-v "Commencing upgrade. All shell sessions will be closed now."
+v "Commencing upgrade. Closing all shell sessions."
COMMAND='. /lib/functions.sh; include /lib/upgrade; do_upgrade_stage2'