@@ -48,28 +48,34 @@ if [ -d ${DOWNLOADED_CMSIS_PATH} ]; then
4848 echo >&2 " ${DOWNLOADED_CMSIS_PATH} already exists, skipping the download."
4949else
5050
51+ # Create a temporary directory with the unique name for better isolation
52+ TEMP_DIR=$( mktemp -d /tmp/$( basename $0 .sh) .XXXXXX)
53+
54+ # Set up cleanup trap for all exit conditions
55+ trap ' rm -rf "${TEMP_DIR}"' EXIT INT TERM
56+
5157 ZIP_PREFIX=" 5782d6f8057906d360f4b95ec08a2354afe5c9b9"
5258 CMSIS_URL=" http://github.com/ARM-software/CMSIS_6/archive/${ZIP_PREFIX} .zip"
5359 CMSIS_MD5=" 563e7c6465f63bdc034359e9b536b366"
5460
5561 # wget is much faster than git clone of the entire repo. So we wget a specific
5662 # version and can then apply a patch, as needed.
57- wget ${CMSIS_URL} -O /tmp /${ZIP_PREFIX} .zip >&2
58- check_md5 /tmp /${ZIP_PREFIX} .zip ${CMSIS_MD5}
63+ wget ${CMSIS_URL} -O ${TEMP_DIR} /${ZIP_PREFIX} .zip >&2
64+ check_md5 ${TEMP_DIR} /${ZIP_PREFIX} .zip ${CMSIS_MD5}
5965
60- unzip -qo /tmp/ ${ZIP_PREFIX} .zip -d /tmp >&2
61- mv /tmp /CMSIS_6-${ZIP_PREFIX} ${DOWNLOADED_CMSIS_PATH}
66+ unzip -qo ${TEMP_DIR} / ${ZIP_PREFIX} .zip -d ${TEMP_DIR} >&2
67+ mv ${TEMP_DIR} /CMSIS_6-${ZIP_PREFIX} ${DOWNLOADED_CMSIS_PATH}
6268
6369 # Also pull the related CMSIS Cortex_DFP component for generic Arm Cortex-M device support
6470 ZIP_PREFIX=" c2c70a97a20fb355815e2ead3d4a40e35a4a3cdf"
6571 CMSIS_DFP_URL=" http://github.com/ARM-software/Cortex_DFP/archive/${ZIP_PREFIX} .zip"
6672 CMSIS_DFP_MD5=" 3cbb6955b6d093a2fe078ef2341f6b89"
6773
68- wget ${CMSIS_DFP_URL} -O /tmp /${ZIP_PREFIX} .zip >&2
69- check_md5 /tmp /${ZIP_PREFIX} .zip ${CMSIS_DFP_MD5}
74+ wget ${CMSIS_DFP_URL} -O ${TEMP_DIR} /${ZIP_PREFIX} .zip >&2
75+ check_md5 ${TEMP_DIR} /${ZIP_PREFIX} .zip ${CMSIS_DFP_MD5}
7076
71- unzip -qo /tmp/ ${ZIP_PREFIX} .zip -d /tmp >&2
72- mv /tmp /Cortex_DFP-${ZIP_PREFIX} ${DOWNLOADED_CORTEX_DFP_PATH}
77+ unzip -qo ${TEMP_DIR} / ${ZIP_PREFIX} .zip -d ${TEMP_DIR} >&2
78+ mv ${TEMP_DIR} /Cortex_DFP-${ZIP_PREFIX} ${DOWNLOADED_CORTEX_DFP_PATH}
7379
7480fi
7581
0 commit comments