Improve logging in upgrade-trigger.sh script. 35/258235/3 accepted/tizen/unified/20210526.051953 submit/tizen/20210514.153447
authorErnest Borowski <e.borowski@samsung.com>
Wed, 12 May 2021 12:42:08 +0000 (12:42 +0000)
committerErnest Borowski <e.borowski@samsung.com>
Fri, 14 May 2021 10:48:39 +0000 (10:48 +0000)
- Add log helper function which can log to stdout and file

logging format:
[script-name][tag]actual_log
currently supported tag formats: [Error] [Info]

Change-Id: Iebb727b8ec4a12fca80b03f6b64c472134749020
Signed-off-by: Ernest Borowski <e.borowski@samsung.com>
scripts/upgrade-trigger.sh

index 9eb7e48..cd12243 100644 (file)
@@ -10,8 +10,24 @@ VERSION_FILE="/opt/etc/version"
 DOWNLOAD_DELTA=$1
 IMG_VERIFIER="/usr/sbin/img-verifier"
 
+SCRIPT_NAME="upgrade-trigger.sh"
+LOG_FILE="/tmp/upgrade-trigger.log"
+#------------------------------------------------
+#       log msg [file]
+#------------------------------------------------
+log() {
+       # log format: [script_name][tag]actual_log
+       LOG="[${SCRIPT_NAME}]$1"
+       if [ "$2" != "" ]; then
+               echo "$LOG" >> "$2"
+       fi
+       echo "$LOG"
+}
+
+rm -f "$LOG_FILE" && touch "$LOG_FILE"
+
 if [ "$#" != "1" ] || [ ! -f "$1" ]; then
-       echo "[Error] Usage: $0 path_to_delta.tar[.gz]"
+       log "[Error] Usage: $0 path_to_delta.tar[.gz]" "$LOG_FILE"
        exit 1
 fi
 
@@ -21,17 +37,19 @@ if tar ztf "$DOWNLOAD_DELTA" 1>/dev/null; then
 elif tar tf "$DOWNLOAD_DELTA" 1>/dev/null; then
        DELTA_TAR="$FOTA_DIR/delta.tar"
 else
-       echo "[Error] Usage $0 path_to_delta.tar[.gz]"
+       log "[Error] Usage $0 path_to_delta.tar[.gz]" "$LOG_FILE"
        exit 1
 fi
 
+log "[Info] Using <$DELTA_TAR> delta file." "$LOG_FILE"
+
 flash_pre_image() {
-       echo "[Info] Flash images for update..."
+       log "[Info] Flash images for update..." "$LOG_FILE"
        CONFIG_FILE="update.cfg"
 
        /bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" "$CONFIG_FILE"
        if [ ! -e "$FOTA_DIR/$CONFIG_FILE" ]; then
-               echo "[Error] There is no $CONFIG_FILE"
+               log "[Error] There is no $CONFIG_FILE" "$LOG_FILE"
                return
        fi
 
@@ -40,7 +58,7 @@ flash_pre_image() {
                if [ "$TYPE" = "PRE_UA" ]; then
                        /bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" "$DELTA_NAME"
                        if [ ! -e "$FOTA_DIR/$DELTA_NAME" ]; then
-                               echo "[Info] There is no delta for $PART_NAME"
+                               log "[Info] There is no delta for $PART_NAME" "$LOG_FILE"
                                continue
                        fi
 
@@ -61,7 +79,7 @@ flash_pre_image() {
                                DEV="${EMMC_DEVICE}p${DEV_NUM}"
                        fi
 
-                       echo "[Info] Flashing $DELTA_NAME... to $DEV"
+                       log "[Info] Flashing $DELTA_NAME... to $DEV" "$LOG_FILE"
                        dd if="$FOTA_DIR/$DELTA_NAME" of="$DEV" bs=1024
                        rm -f "$FOTA_DIR/$DELTA_NAME"
                fi
@@ -87,7 +105,7 @@ run_setup_script() {
        SETUP_SCRIPT_PATH=$FOTA_DIR/$SETUP_SCRIPT_NAME
 
        /bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" "$SETUP_SCRIPT_NAME" ||\
-               (echo "setup.sh does not exist, skipping." && return)
+               (log "[Error] setup.sh does not exist, skipping." "$LOG_FILE" && return)
 
        if [ -e "$SETUP_SCRIPT_PATH" ]; then
                /bin/sh "$SETUP_SCRIPT_PATH"
@@ -97,12 +115,12 @@ run_setup_script() {
 
 # Check fota directory
 if [ ! -d "$FOTA_DIR" ]; then
-       echo "[Info] Create fota dir..."
+       log "[Info] Create fota dir..." "$LOG_FILE"
        /bin/mkdir -p "$FOTA_DIR"
 fi
 
 if [ ! -d "$STATUS_DIR" ]; then
-       echo "[Info] Create status dir..."
+       log "[Info] Create status dir..." "$LOG_FILE"
        /bin/mkdir -p "$STATUS_DIR"
 fi
 
@@ -112,9 +130,9 @@ if [ ! -f "$VERSION_FILE" ]; then
 fi
 
 if [ "$DOWNLOAD_DELTA" -ef "$DELTA_TAR" ]; then
-       echo "[Info] delta.tar[.gz] is already placed in correct directory."
+       log "[Info] delta.tar[.gz] is already placed in correct directory." "$LOG_FILE"
 else
-       echo "[Info] Copy delta.tar[.gz]..."
+       log "[Info] Copy delta.tar[.gz]..." "$LOG_FILE"
        /bin/cp "$DOWNLOAD_DELTA" "$DELTA_TAR"
 fi
 
@@ -129,13 +147,13 @@ sync
 
 # Verify delta.tar
 if [ -e "$IMG_VERIFIER" ]; then
-       echo "[Info] Package verifier is found. Verify $DELTA_TAR"
+       log "[Info] Package verifier is found. Verify $DELTA_TAR" "$LOG_FILE"
        if ! "$IMG_VERIFIER" -i "$DELTA_TAR" -l "/opt/var/log/last_iv.log"; then
-               echo "[Error] Update package verification FAILED..."
+               log "[Error] Update package verification FAILED..." "$LOG_FILE"
                echo 5 > "$STATUS_DIR"/result
                exit 1
        else
-               echo "[Info] Update package verification PASSED!"
+               log "[Info] Update package verification PASSED!" "$LOG_FILE"
        fi
 fi
 
@@ -148,7 +166,7 @@ run_setup_script
 flash_pre_image
 
 # Extract delta.ua
-echo "[Info] Extract delta.ua..."
+log "[Info] Extract delta.ua..." "$LOG_FILE"
 /bin/tar xvfp "$DELTA_TAR" -C "$FOTA_DIR" delta.ua
 sync
 sleep 1
@@ -156,14 +174,14 @@ sleep 1
 # FOTA: /usr/bin/rw-update-prepare.sh
 
 # Write delta saved path
-echo "[Info] Write paths..."
+log "[Info] Write paths..." "$LOG_FILE"
 echo "$FOTA_DIR" > "$STATUS_DIR/DELTA.PATH"
 dirname "$DOWNLOAD_DELTA" > "$STATUS_DIR/DOWNLOAD.PATH"
 sync
 
 # go to fota mode
-echo "[Info] Go TOTA update..."
+log "[Info] Go TOTA update..." "$LOG_FILE"
 if ! /sbin/reboot fota; then
-       echo "[Error] Failed to reboot fota"
+       log "[Error] Failed to reboot fota" "$LOG_FILE"
        exit 100
 fi