clone_partitions: Separate clone actions into functions 60/314860/1
authorSangYoun Kwak <sy.kwak@samsung.com>
Mon, 22 Jul 2024 05:55:05 +0000 (14:55 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Mon, 22 Jul 2024 07:01:11 +0000 (16:01 +0900)
To increase the readability and remove duplicated codes, codes for
cloning actions are separated as functions.

Change-Id: Icad1d3a1d1bbaafab7cf2ac30509aeb9321ce29a
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
scripts/clone_partitions/clone_partitions.sh

index 3682cff144e0559e6b7df07050aef0b6f4d98a76..3540f4ed4323238981ec0c01c77617739cab1ede 100644 (file)
@@ -32,6 +32,43 @@ set_partition_status_ok(){
                device_board_set_partition_status $OPPOSITE_AB "ok"
 }
 
+start_clone() {
+       if [ "$(device_board_get_partition_ab_cloned)" -eq "1" ]; then
+               log "[Info] Partitions already cloned"
+       else
+               do_clone
+       fi
+}
+
+clone_recovery() {
+       /bin/device_board_clear_partition_ab_cloned
+       do_clone
+       set_partition_status_ok
+}
+
+check_clone_background_available() {
+       local bootmode=$(device_board_get_boot_mode)
+       local ret_boot_mode=$?
+
+       if [ ${ret_boot_mode} -ne 0 ]; then
+               critical_log "[Error] Cannot get boot mode: ${ret_boot_mode}"
+               exit 1
+       fi
+
+       if [ "${bootmode}" != "normal" ]; then
+               log "[Info] bootmode is not \"normal\": ${bootmode}"
+               exit 0
+       fi
+}
+
+clone_background() {
+       # wait for 60 seconds to wait for bootup
+       sleep 60
+
+       check_clone_available
+       start_clone
+}
+
 set -o errexit
 trap 'echo "Aborting due to errexit on ${0##*/}:$LINENO. Exit code: $?" >&2' ERR
 set -o errtrace -e -o pipefail
@@ -48,38 +85,13 @@ set_script_name_and_log_file "${BASH_SOURCE[0]}"
 flock 9
 case $1 in
        "recovery")
-               /bin/device_board_clear_partition_ab_cloned
-               do_clone
-               set_partition_status_ok
+               clone_recovery
                ;;
        "background")
-               # wait for 60 seconds to wait for bootup
-               sleep 60
-
-               BOOTMODE=$(device_board_get_boot_mode)
-               RET_BOOT_MODE=$?
-               if [ ${RET_BOOT_MODE} -ne 0 ]; then
-                       critical_log "[Error] Cannot get boot mode: ${RET_BOOT_MODE}"
-                       exit 1
-               fi
-
-               if [ "${BOOTMODE}" != "normal" ]; then
-                       log "[Info] bootmode is not \"normal\": ${BOOTMODE}"
-                       exit 0
-               fi
-
-               if [ "$(device_board_get_partition_ab_cloned)" -eq "1" ]; then
-                       log "[Info] Partitions already cloned"
-               else
-                       do_clone
-               fi
+               clone_background
                ;;
        *)
-               if [ "$(device_board_get_partition_ab_cloned)" -eq "1" ]; then
-                       log "[Info] Partitions already cloned"
-               else
-                       do_clone
-               fi
+               start_clone
                ;;
 esac
 ) 9> "$FLOCK_PATH"