1
1
#! /bin/bash
2
+ # Check whether we should rebuild the frozen Micro Python code
3
+
4
+ set -e
2
5
3
6
BOARD=" $1 "
4
7
RELEASE_TYP=" $2 "
@@ -7,12 +10,12 @@ PY_PATH="./frozen"
7
10
PY_DIRS=" $( ls ${PY_PATH} ) "
8
11
OS=" $( uname) "
9
12
if [ ${VARIANT} != " BASE" ] ; then
10
- BUILD_DIR=" build-${VARIANT} "
13
+ BUILD_DIR=" build-${VARIANT} / ${BOARD} / ${RELEASE_TYP} "
11
14
else
12
- BUILD_DIR=" build"
15
+ BUILD_DIR=" build/ ${BOARD} / ${RELEASE_TYP} "
13
16
fi
14
17
15
- # Script Has to be called from esp32 Dir
18
+ # Script has to be called from esp32 dir
16
19
if ! [ $0 = " tools/mpy-build-check.sh" ]; then
17
20
echo " Need to run as tools/mpy-build-check.sh!" >&2
18
21
exit 1
@@ -24,32 +27,33 @@ if [ "${BOARD}" != "WIPY" -a "${BOARD}" != "SIPY" -a "${BOARD}" != "LOPY" -a "${
24
27
exit 1
25
28
fi
26
29
27
- BUILD_TIMESTAMP=./" ${BUILD_DIR} " /${BOARD} " /" ${RELEASE_TYP} " /" mpy_last_build_timestamp.TS
28
-
29
- # If Last mpy Build Timestamp Not avialable create it
30
- if [ ! -d ${BUILD_DIR} /${BOARD} /${RELEASE_TYP} ] ; then
31
- exit 0
32
- else
33
- if [ ! -f ${BUILD_TIMESTAMP} ] ; then
34
- $( touch ${BUILD_TIMESTAMP} )
35
- fi
36
- fi
37
30
38
- # Get Current Timestamp
31
+ # Get current timestamp
39
32
CURR_TS=" $( date +" %s" ) "
40
33
41
- MPY_PATH=./" ${BUILD_DIR} " /" ${BOARD} " /" ${RELEASE_TYP} " /frozen_mpy
42
34
35
+ BUILD_TIMESTAMP=" ${BUILD_DIR} /mpy_last_build_timestamp.TS"
36
+
37
+
38
+ MPY_PATH=" ${BUILD_DIR} /frozen_mpy"
43
39
if ! [ -d ${MPY_PATH} ] ; then
44
- # Build Directory not created yet
45
- # Update Last Build Timestamp
46
- $( echo ${CURR_TS} > ${BUILD_TIMESTAMP} )
40
+ # Build directory does not exist
41
+ # Update last build timestamp
42
+ mkdir -p ${BUILD_DIR}
43
+ echo ${CURR_TS} > ${BUILD_TIMESTAMP}
47
44
exit 0
48
45
fi
49
46
50
- LAST_BUILD=$( < ${BUILD_TIMESTAMP} )
51
47
52
- # Check if any of Frozen Directorys has been updated.. Rebuild out Mpy files
48
+ # Get last build timestamp
49
+ if [ ! -f ${BUILD_TIMESTAMP} ] ; then
50
+ LAST_BUILD=0
51
+ else
52
+ LAST_BUILD=$( < ${BUILD_TIMESTAMP} )
53
+ fi
54
+
55
+
56
+ # Remove Mpy build directory if any of the frozen directories have been updated
53
57
for dir in ${PY_DIRS}
54
58
do
55
59
if [[ " ${dir} " =~ ^\\ .* ]] ; then
65
69
66
70
if [[ ${TS} -gt ${LAST_BUILD} ]] ; then
67
71
echo " Rebuilding frozen Code!" >&2
68
- # Remove all MPY out files to be rubuild again by Makefile
69
- $( rm -rf ${MPY_PATH} )
70
- # Update Last Build Timestamp
71
- $( echo ${CURR_TS} > ${BUILD_TIMESTAMP} )
72
+ # Remove the build directory to trigger a rebuild from the Makefile
73
+ rm -rf ${MPY_PATH}
74
+ # Update last build timestamp
75
+ echo ${CURR_TS} > ${BUILD_TIMESTAMP}
72
76
exit 0
73
77
fi
74
78
done
75
79
76
- # Update Last Build Timestamp
77
- $( echo ${CURR_TS} > ${BUILD_TIMESTAMP} )
80
+ # Update last build timestamp
81
+ echo ${CURR_TS} > ${BUILD_TIMESTAMP}
78
82
exit 0
0 commit comments