From: Rafał Miłecki <ra...@milecki.pl>

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 <ra...@milecki.pl>
---
 .../base-files/files/lib/upgrade/common.sh    | 22 ----------------
 .../base-files/files/lib/upgrade/do_stage2    | 25 +++++++++++++++++++
 package/base-files/files/lib/upgrade/stage2   |  2 +-
 package/base-files/files/sbin/sysupgrade      |  2 +-
 4 files changed, 27 insertions(+), 24 deletions(-)
 create mode 100755 package/base-files/files/lib/upgrade/do_stage2

diff --git a/package/base-files/files/lib/upgrade/common.sh 
b/package/base-files/files/lib/upgrade/common.sh
index 7c4a2af08f..df6b54f79e 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -235,25 +235,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
-- 
2.21.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to