procd: add 'platform_nand_pre_upgrade'
[openwrt/staging/wigyori.git] / package / system / procd / files / nand.sh
index 1da63e2cc154aacf962a78eebff67e4dd6291c0e..8b0564dca2ecf04754112dd971e4a8cdb6f9df54 100644 (file)
@@ -275,6 +275,10 @@ nand_upgrade_tar() {
 nand_do_upgrade_stage2() {
        local file_type=$(identify $1)
 
+       if type 'platform_nand_pre_upgrade' >/dev/null 2>/dev/null; then
+               platform_nand_pre_upgrade "$1"
+       fi
+
        [ ! "$(find_mtd_index "$CI_UBIPART")" ] && CI_UBIPART="rootfs"
 
        case "$file_type" in
@@ -322,7 +326,6 @@ nand_upgrade_stage1() {
                exit 0
        }
 }
-append sysupgrade_pre_upgrade nand_upgrade_stage1
 
 # Check if passed file is a valid one for NAND sysupgrade. Currently it accepts
 # 3 types of files:
@@ -330,12 +333,12 @@ append sysupgrade_pre_upgrade nand_upgrade_stage1
 #    MAGIC
 # 2) UBIFS - should contain UBIFS partition that will replace "rootfs" volume,
 #    header is checked for the proper MAGIC
-# 3) TRX - archive has to include "sysupgrade-BOARD" directory with a non-empty
+# 3) TAR - archive has to include "sysupgrade-BOARD" directory with a non-empty
 #    "CONTROL" file (at this point its content isn't verified)
 #
 # You usually want to call this function in platform_check_image.
 #
-# $(1): board name, used in case of passing TRX file
+# $(1): board name, used in case of passing TAR file
 # $(2): file to be checked
 nand_do_platform_check() {
        local board_name="$1"
@@ -348,8 +351,14 @@ nand_do_platform_check() {
                return 1
        }
 
-       echo -n $2 > /tmp/sysupgrade-nand-path
-       cp /sbin/upgraded /tmp/
-
        return 0
 }
+
+# Start NAND upgrade process
+#
+# $(1): file to be used for upgrade
+nand_do_upgrade() {
+       echo -n $1 > /tmp/sysupgrade-nand-path
+       cp /sbin/upgraded /tmp/
+       nand_upgrade_stage1
+}