Change output of stdout/stderr to log file. 53/250153/1
authorKunhoon Baik <knhoon.baik@samsung.com>
Mon, 21 Dec 2020 08:11:14 +0000 (17:11 +0900)
committerKunhoon Baik <knhoon.baik@samsung.com>
Mon, 21 Dec 2020 08:13:54 +0000 (17:13 +0900)
Remove previous case by case log mechasim.
Instead of such way, system-rw-update will log whole stdout/stderr into the @TZ_SYS_VAR@/log/system-rw-update.log

Change-Id: If265c863be7bc317277bdbd98628995230d72b56

units/offline-update.service.in
upgrade/update.sh.in

index 5fb87e22a077f2c8b4960764d31411e987d5f83a..3634da523cdf4d72028cbf287c7bc2e53fefff36 100644 (file)
@@ -7,4 +7,7 @@ After=sysinit.target
 [Service]
 Type=oneshot
 SmackProcessLabel=System::Privileged
+ExecStartPre=/bin/rm -f @TZ_SYS_VAR@/log/system-rw-update.log
 ExecStart=@TZ_SYS_UPGRADE@/update-init.sh
+StandardOutput=file:@TZ_SYS_VAR@/log/system-rw-update.log
+StandardError=file:@TZ_SYS_VAR@/log/system-rw-update.log
index 014f21fbd53492a24cc329b05fa8e065461bc9ff..7cce7b28e814adb11165c65ae5a5979e8c696bc1 100755 (executable)
@@ -4,6 +4,11 @@
 #
 PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
+COLOR_ERROR='\033[01;31m'
+COLOR_DEBUG='\033[01;34m'
+COLOR_NOTIFY='\033[01;33m'
+COLOR_RESET='\033[00;00m'
+
 RW_UPDATE_ERROR_NONE=00
 
 UPI_RW_UPDATE_ERROR_PREFIX=FA
@@ -11,18 +16,35 @@ UPI_RW_UPDATE_ERROR=${UPI_RW_UPDATE_ERROR_PREFIX}1A
 
 TMP_DIR=/tmp/upgrade
 UPDATE_DIR=@TZ_SYS_UPGRADE@
-PATCH_DIR=@TZ_SYS_UPGRADE_SCRIPTS@
+UPDATE_SCRIPT_DIR=@TZ_SYS_UPGRADE_SCRIPTS@
 UPDATE_DATA_DIR=/opt/data/update
-LOG_FILE=${UPDATE_DATA_DIR}/rw_update.log
 RESULT_FILE=${UPDATE_DATA_DIR}/result
 SDB_RULE=${UPDATE_DATA_DIR}/99-sdb-switch.rules
 VERSION_FILE=/opt/etc/version
 RW_MACRO=${UPDATE_DIR}/rw-update-macro.inc
-RUN=/bin/sh
+SHELL=/bin/bash
 
 RW_GUI=
 RW_ANI=/usr/bin/rw-update-ani
 
+DEBUG()
+{
+        LOG_TEXT=$1
+        echo -e "${COLOR_DEBUG}${LOG_TEXT}${COLOR_RESET}"
+}
+
+ERROR()
+{
+        LOG_TEXT=$1
+        echo -e "${COLOR_ERROR}${LOG_TEXT}${COLOR_RESET}"
+}
+
+NOTIFY()
+{
+        LOG_TEXT=$1
+        echo -e "${COLOR_NOTIFY}${LOG_TEXT}${COLOR_RESET}"
+}
+
 #------------------------------------------------
 #      shell script verity check
 #      return 0 : pass
@@ -32,7 +54,7 @@ RW_ANI=/usr/bin/rw-update-ani
 Verity_Check() {
 
        if [ "z$1" = "z" ]; then
-               echo "Input Shell Script Null" >> ${LOG_FILE}
+               DEBUG "Verity_Check: Input is Null"
                return 1
        fi
 
@@ -47,18 +69,18 @@ Verity_Check() {
 
                        md5list=`/usr/bin/grep ${SC_FILE} ${SC_LIST} | /usr/bin/awk -F' ' '{print $2}'`
                        if [ "$md5result" = "$md5list" ]; then
-                               echo "[PASS    ] ${SC_FILE} verity check" >> ${LOG_FILE}
+                               DEBUG "Verity_Check: [PASS] ${SC_FILE} verity check"
                                return 0
                        else
-                               echo "[MISMATCH] ${SC_FILE} md5sum" >> ${LOG_FILE}
+                               ERROR "Verity_Check: [MISMATCH] ${SC_FILE} md5sum"
                                return 2
                        fi
                else
-                       echo "[No entry] ${SC_FILE} in ${SC_LIST}" >> ${LOG_FILE}
+                       ERROR "Verity_Check: [NO ENTRY] ${SC_FILE} in ${SC_LIST}"
                        return 1
                fi
        else
-               echo "No such file ${SC_LIST}" >> ${LOG_FILE}
+               ERROR "Verity_Check: No script list file ${SC_LIST}"
                return 1
        fi
 }
@@ -74,17 +96,17 @@ fi
 
 mkdir -p ${RECOVERY_DIR}
 
-echo "System RW update: rw update started" > ${LOG_FILE}
+NOTIFY "System RW update: rw update started"
 
 # Execute update scripts
-if [ ! -d ${PATCH_DIR} ]
+if [ ! -d ${UPDATE_SCRIPT_DIR} ]
 then
-       echo "FAIL: Upgrade directory does not exist" >> ${LOG_FILE}
+       ERROR "FAIL: Upgrade directory does not exist"
        echo "${UPI_RW_UPDATE_ERROR}" > ${RESULT_FILE}
 else
        if [ "${RW_GUI}" = "1" ]; then
                progress=0
-               total=`ls -l ${PATCH_DIR} | grep -c '^-'`
+               total=`ls -l ${UPDATE_SCRIPT_DIR} | grep -c '^-'`
                mkdir -p ${TMP_DIR}
                echo ${total} > ${TMP_DIR}/total
                export XDG_RUNTIME_DIR=/run
@@ -92,21 +114,26 @@ else
                /usr/bin/rw-update-ani --wait &
        fi
 
-       PATCHES=`/bin/ls ${PATCH_DIR}`
+       UPDATE_SCRIPTS=`/bin/ls ${UPDATE_SCRIPT_DIR}`
 
-       for PATCH in ${PATCHES}; do
+       for UPSCRIPT in ${UPDATE_SCRIPTS}; do
                if [ "${RW_GUI}" = "1" ]; then
                        progress=$((progress+1))
                        echo ${progress} > ${TMP_DIR}/progress
                fi
-               Verity_Check ${PATCH_DIR}/${PATCH}
+               Verity_Check ${UPDATE_SCRIPT_DIR}/${UPSCRIPT}
                # Without verification result, run all scripts
-               ${RUN} ${PATCH_DIR}/${PATCH}
+               ${SHELL} ${UPDATE_SCRIPT_DIR}/${UPSCRIPT}
+               if [ $? -ne 0 ]; then
+                       ERROR "[FAIL] ${UPSCRIPT}"
+               else
+                       DEBUG "[DONE] ${UPSCRIPT}"
+               fi
        done
 
        sync
 
-       echo "SUCCESS: Upgrade successfully finished" >> ${LOG_FILE}
+       NOTIFY "SUCCESS: Upgrade successfully finished"
        echo "${RW_UPDATE_ERROR_NONE}" > ${RESULT_FILE}
 fi