From: Rafał Miłecki Date: Wed, 3 Jul 2019 07:51:49 +0000 (+0200) Subject: base-files: move stage2 upgrade to separated file X-Git-Tag: v21.02.0-rc1~5557 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=f7edd94a6588aa6a3e2e7a72410a34392a9fbe78;p=openwrt%2Fopenwrt.git base-files: move stage2 upgrade to separated file do_upgrade_stage2() isn't really any common code. It isn't used anywhere except for /sbin/sysupgrade that passes it to the stage2. Moving its code to separated file also simplifies COMMAND variable. Signed-off-by: Rafał Miłecki --- diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index a13a6aaf5a..2afa0addb4 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -225,25 +225,3 @@ default_do_upgrade() { fi [ $? -ne 0 ] && exit 1 } - -do_upgrade_stage2() { - v "Performing system upgrade..." - if type 'platform_do_upgrade' >/dev/null 2>/dev/null; then - platform_do_upgrade "$IMAGE" - else - default_do_upgrade "$IMAGE" - fi - - if [ "$SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then - platform_copy_config - fi - - v "Upgrade completed" - sleep 1 - - v "Rebooting system..." - umount -a - reboot -f - sleep 5 - echo b 2>/dev/null >/proc/sysrq-trigger -} diff --git a/package/base-files/files/lib/upgrade/do_stage2 b/package/base-files/files/lib/upgrade/do_stage2 new file mode 100755 index 0000000000..8aae452560 --- /dev/null +++ b/package/base-files/files/lib/upgrade/do_stage2 @@ -0,0 +1,25 @@ +#!/bin/sh + +. /lib/functions.sh + +include /lib/upgrade + +v "Performing system upgrade..." +if type 'platform_do_upgrade' >/dev/null 2>/dev/null; then + platform_do_upgrade "$IMAGE" +else + default_do_upgrade "$IMAGE" +fi + +if [ "$SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then + platform_copy_config +fi + +v "Upgrade completed" +sleep 1 + +v "Rebooting system..." +umount -a +reboot -f +sleep 5 +echo b 2>/dev/null >/proc/sysrq-trigger diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2 index 05d9214377..0a11cb2005 100755 --- a/package/base-files/files/lib/upgrade/stage2 +++ b/package/base-files/files/lib/upgrade/stage2 @@ -59,7 +59,7 @@ switch_to_ramfs() { local file="$(which "$binary" 2>/dev/null)" [ -n "$file" ] && install_bin "$file" done - install_file /etc/resolv.conf /lib/*.sh /lib/functions/*.sh /lib/upgrade/*.sh $RAMFS_COPY_DATA + install_file /etc/resolv.conf /lib/*.sh /lib/functions/*.sh /lib/upgrade/*.sh /lib/upgrade/do_stage2 $RAMFS_COPY_DATA [ -L "/lib64" ] && ln -s /lib $RAM_ROOT/lib64 diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index 54d7a64b48..73291262e7 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -363,7 +363,7 @@ fi install_bin /sbin/upgraded v "Commencing upgrade. Closing all shell sessions." -COMMAND='. /lib/functions.sh; include /lib/upgrade; do_upgrade_stage2' +COMMAND='/lib/upgrade/do_stage2' if [ -n "$FAILSAFE" ]; then printf '%s\x00%s\x00%s' "$RAM_ROOT" "$IMAGE" "$COMMAND" >/tmp/sysupgrade