base-files: fix sysupgrade -b/-l when -c is used
Since /overlay/upper appeared, -b ignored -c silently (cause it was still checking for /overlay/etc). Now, if /overlay/upper is absent, sysupgrade -c will fail and exit verbosely. Fix -l to consider -c (it never did). Clean up to always use /overlay/upper/xxx instead of still checking for /overlay/xxx. Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
This commit is contained in:
parent
cb02a376b3
commit
3e98674bcf
1 changed files with 11 additions and 10 deletions
|
@ -108,14 +108,8 @@ add_uci_conffiles() {
|
|||
|
||||
add_overlayfiles() {
|
||||
local file="$1"
|
||||
if [ -d /overlay/upper ]; then
|
||||
local overlaydir="/overlay/upper"
|
||||
else
|
||||
local overlaydir="/overlay"
|
||||
fi
|
||||
find $overlaydir/etc/ -type f -o -type l | sed \
|
||||
find /overlay/upper/etc/ -type f -o -type l | sed \
|
||||
-e 's,^/overlay\/upper/,/,' \
|
||||
-e 's,^/overlay/,/,' \
|
||||
-e '\,/META_[a-zA-Z0-9]*$,d' \
|
||||
-e '\,/functions.sh$,d' \
|
||||
-e '\,/[^/]*-opkg$,d' \
|
||||
|
@ -126,9 +120,16 @@ add_overlayfiles() {
|
|||
# hooks
|
||||
sysupgrade_image_check="fwtool_check_image platform_check_image"
|
||||
sysupgrade_pre_upgrade="fwtool_pre_upgrade"
|
||||
[ $SAVE_OVERLAY = 0 -o ! -d /overlay/etc ] && \
|
||||
sysupgrade_init_conffiles="add_uci_conffiles" || \
|
||||
|
||||
if [ $SAVE_OVERLAY = 1 ]; then
|
||||
[ ! -d /overlay/upper/etc ] && {
|
||||
echo "Cannot find '/overlay/upper/etc', required for '-c'"
|
||||
exit 1
|
||||
}
|
||||
sysupgrade_init_conffiles="add_overlayfiles"
|
||||
else
|
||||
sysupgrade_init_conffiles="add_uci_conffiles"
|
||||
fi
|
||||
|
||||
include /lib/upgrade
|
||||
|
||||
|
@ -152,7 +153,7 @@ do_save_conffiles() {
|
|||
}
|
||||
|
||||
if [ $CONF_BACKUP_LIST -eq 1 ]; then
|
||||
add_uci_conffiles "$CONFFILES"
|
||||
run_hooks "$CONFFILES" $sysupgrade_init_conffiles
|
||||
cat "$CONFFILES"
|
||||
rm -f "$CONFFILES"
|
||||
exit 0
|
||||
|
|
Loading…
Reference in a new issue