#
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
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
Verity_Check() {
if [ "z$1" = "z" ]; then
- echo "Input Shell Script Null" >> ${LOG_FILE}
+ DEBUG "Verity_Check: Input is Null"
return 1
fi
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
}
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
/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