fn_process_extra_delta
else
${MK_PART_DELTA} ${part_name} ${update_type} ${part_bin} ${delta_bin}
- if [ "$?" = "0" ]; then
+ RET=$?
+ if [ "$RET" = "0" ] || [ "$RET" = "2" ]; then
if [ "${update_type}" = "DELTA_FS" ]; then
- sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
- sudo mv ${RESULT_DIR}/${part_bin} ${DELTA_DIR}
+ sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
+ sudo mv ${RESULT_DIR}/${part_bin} ${DELTA_DIR}
else
sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
- sudo mv ${RESULT_DIR}/${part_bin}/${delta_bin} ${DELTA_DIR}
+ sudo mv ${RESULT_DIR}/${part_bin}/${delta_bin} ${DELTA_DIR}
+ fi
+ if [ "$RET" = "2" ]; then
+ echo "Omit ${part_name} from cfg"
+ sudo cat ${UPDATE_CFG_PATH} | sed /^${part_name}/d \
+ > "${UPDATE_CFG_PATH}_tmp"
+ sudo mv "${UPDATE_CFG_PATH}_tmp" ${UPDATE_CFG_PATH}
fi
else
sudo rm -rf ${RESULT_DIR}/${part_bin}
PART_IMG_NEW=${PART_IMG_ORG}.new
#---- untar partition image and rename for old & new ----
- echo "untar ${OLD_TAR_FILE}"
- tar xvf ${OLD_TAR_DIR}/${OLD_TAR_FILE} ${PART_IMG_ORG}
- if [ "$?" != "0" ]; then
- return 1;
+ if [ "z$1" = "z" ]; then
+ echo "untar ${OLD_TAR_FILE}"
+ tar xvf ${OLD_TAR_DIR}/${OLD_TAR_FILE} ${PART_IMG_ORG}
+ if [ "$?" != "0" ]; then
+ return 1;
+ fi
+ sudo mv ${PART_IMG_ORG} ${PART_IMG_OLD}
fi
- sudo mv ${PART_IMG_ORG} ${PART_IMG_OLD}
echo "untar ${NEW_TAR_FILE}"
tar xvf ${NEW_TAR_DIR}/${NEW_TAR_FILE} ${PART_IMG_ORG}
sudo mv ${PART_IMG_ORG} ${PART_IMG_NEW}
#---- check whether the binaries are same ----
- sudo diff ${PART_IMG_OLD} ${PART_IMG_NEW}
- if [ "$?" = "0" ]; then
- echo "[${PART_NAME}] two binaries are same"
- sudo rm -rf ${PART_IMG_OLD}
- sudo rm -rf ${PART_IMG_NEW}
- return 1
+ if [ "z$1" = "z" ]; then
+ sudo diff ${PART_IMG_OLD} ${PART_IMG_NEW}
+ if [ "$?" = "0" ]; then
+ echo "[${PART_NAME}] two binaries are same"
+ sudo rm -rf ${PART_IMG_OLD}
+ sudo rm -rf ${PART_IMG_NEW}
+ return 1
+ fi
+ sudo python ${COMMON_BINDIR}/CreatePatch.py ${UPDATE_TYPE} ${PART_NAME} ${PART_IMG_OLD} ${PART_IMG_NEW} ${OUTPUT_DIR} ${UPDATE_CFG_PATH}
+ PythonRet=$?
+ sudo rm ${PART_IMG_OLD}
+
+ if [ $PythonRet != "0" ]; then
+ echo "[${PART_NAME}] Failed to generate DELTA"
+ exit 1
+ fi
+
fi
- sudo python ${COMMON_BINDIR}/CreatePatch.py ${UPDATE_TYPE} ${PART_NAME} ${PART_IMG_OLD} ${PART_IMG_NEW} ${OUTPUT_DIR} ${UPDATE_CFG_PATH}
- PythonRet=$?
- sudo rm ${PART_IMG_OLD}
+
sudo mv ${PART_IMG_NEW} ${OUTPUT_DIR}/${PART_IMG_ORG}
sudo chown ${MY_ID}:${MY_ID} ${OUTPUT_DIR}/${PART_IMG_ORG}
- if [ $PythonRet != "0" ]; then
- echo "[${PART_NAME}] Failed to generate DELTA"
- exit 1
+ if [ ! "z$1" = "z" ]; then
+ # Return 2 informs mk_delta to omit this image
+ # from update.cfg file
+ return 2
fi
return 0
}
fn_extract_delta_ua ${PART_BIN}
fi
+OLD_TAR_MISSING=
if [ "z${OLD_TAR_FILE}" = "z" ]; then
- echo "[old] tar file does not exist in ${DATA_DIR}/${OLD_TAR_DIR} which contains ${PART_BIN}"
- #exit 0, cos this is not an error.
- exit 0
+ OLD_TAR_MISSING="TRUE"
+ if [ ! "${UPDATE_TYPE}" = "FULL_IMG" ]; then
+ echo "[old] tar file does not exist in ${DATA_DIR}/${OLD_TAR_DIR} which contains ${PART_BIN}"
+ #exit 0, cos this is not an error.
+ exit 0
+ fi
fi
if [ "z${NEW_TAR_FILE}" = "z" ]; then
exit 0
fi
-echo "[old] ${OLD_TAR_FILE} contains ${PART_BIN}"
+if [ "z${OLD_TAR_MISSING}" = "z" ]; then
+ echo "[old] ${OLD_TAR_FILE} contains ${PART_BIN}"
+fi
echo "[new] ${NEW_TAR_FILE} contains ${PART_BIN}"
fi
if [ "${UPDATE_TYPE}" = "FULL_IMG" ]; then
- fn_mk_full_img
+ fn_mk_full_img $OLD_TAR_MISSING
+ RET=$?
+ if [ "$RET" != "0" ]; then
+ exit $RET
+ fi
elif [ "${UPDATE_TYPE}" = "DELTA_IMG" ]; then
fn_mk_delta_img
elif [ "${UPDATE_TYPE}" = "DELTA_FS" ]; then