summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2019-07-03 09:51:49 +0200
committerRafał Miłecki <rafal@milecki.pl>2019-07-11 17:05:20 +0200
commitf7edd94a6588aa6a3e2e7a72410a34392a9fbe78 (patch)
tree9b684e7048a839e04819e663355b39d3c01c417f
parent087e14ab5994986802739b57e2de227760102bf4 (diff)
downloadopenwrt-f7edd94a6588aa6a3e2e7a72410a34392a9fbe78.tar.gz
openwrt-f7edd94a6588aa6a3e2e7a72410a34392a9fbe78.tar.bz2
openwrt-f7edd94a6588aa6a3e2e7a72410a34392a9fbe78.zip
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 <rafal@milecki.pl>
-rw-r--r--package/base-files/files/lib/upgrade/common.sh22
-rwxr-xr-xpackage/base-files/files/lib/upgrade/do_stage225
-rwxr-xr-xpackage/base-files/files/lib/upgrade/stage22
-rwxr-xr-xpackage/base-files/files/sbin/sysupgrade2
4 files changed, 27 insertions, 24 deletions
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