6
6
7
7
OSBITS=` arch`
8
8
if [[ " $OSTYPE " == " linux" * ]]; then
9
- export OS_IS_LINUX=" 1"
10
- ARCHIVE_FORMAT=" tar.xz"
11
- if [[ " $OSBITS " == " i686" ]]; then
12
- OS_NAME=" linux32"
13
- elif [[ " $OSBITS " == " x86_64" ]]; then
14
- OS_NAME=" linux64"
15
- elif [[ " $OSBITS " == " armv7l" || " $OSBITS " == " aarch64" ]]; then
16
- OS_NAME=" linuxarm"
17
- else
18
- OS_NAME=" $OSTYPE -$OSBITS "
19
- echo " Unknown OS '$OS_NAME '"
20
- exit 1
21
- fi
9
+ export OS_IS_LINUX=" 1"
10
+ ARCHIVE_FORMAT=" tar.xz"
11
+ if [[ " $OSBITS " == " i686" ]]; then
12
+ OS_NAME=" linux32"
13
+ elif [[ " $OSBITS " == " x86_64" ]]; then
14
+ OS_NAME=" linux64"
15
+ elif [[ " $OSBITS " == " armv7l" || " $OSBITS " == " aarch64" ]]; then
16
+ OS_NAME=" linuxarm"
17
+ else
18
+ OS_NAME=" $OSTYPE -$OSBITS "
19
+ echo " Unknown OS '$OS_NAME '"
20
+ exit 1
21
+ fi
22
22
elif [[ " $OSTYPE " == " darwin" * ]]; then
23
- export OS_IS_MACOS=" 1"
24
- ARCHIVE_FORMAT=" zip"
25
- OS_NAME=" macosx"
23
+ export OS_IS_MACOS=" 1"
24
+ ARCHIVE_FORMAT=" zip"
25
+ OS_NAME=" macosx"
26
26
elif [[ " $OSTYPE " == " cygwin" ]] || [[ " $OSTYPE " == " msys" ]] || [[ " $OSTYPE " == " win32" ]]; then
27
- export OS_IS_WINDOWS=" 1"
28
- ARCHIVE_FORMAT=" zip"
29
- OS_NAME=" windows"
27
+ export OS_IS_WINDOWS=" 1"
28
+ ARCHIVE_FORMAT=" zip"
29
+ OS_NAME=" windows"
30
30
else
31
- OS_NAME=" $OSTYPE -$OSBITS "
32
- echo " Unknown OS '$OS_NAME '"
33
- exit 1
31
+ OS_NAME=" $OSTYPE -$OSBITS "
32
+ echo " Unknown OS '$OS_NAME '"
33
+ exit 1
34
34
fi
35
35
export OS_NAME
36
36
37
- ARDUINO_BUILD_DIR=" $HOME /.arduino/build.tmp"
38
- ARDUINO_CACHE_DIR=" $HOME /.arduino/cache.tmp"
39
-
40
37
if [ " $OS_IS_MACOS " == " 1" ]; then
41
- export ARDUINO_IDE_PATH=" /Applications/Arduino.app/Contents/Java"
42
- export ARDUINO_USR_PATH=" $HOME /Documents/Arduino"
38
+ export ARDUINO_IDE_PATH=" /Applications/Arduino.app/Contents/Java"
39
+ export ARDUINO_USR_PATH=" $HOME /Documents/Arduino"
43
40
elif [ " $OS_IS_WINDOWS " == " 1" ]; then
44
- export ARDUINO_IDE_PATH=" $HOME /arduino_ide"
45
- export ARDUINO_USR_PATH=" $HOME /Documents/Arduino"
41
+ export ARDUINO_IDE_PATH=" $HOME /arduino_ide"
42
+ export ARDUINO_USR_PATH=" $HOME /Documents/Arduino"
46
43
else
47
- export ARDUINO_IDE_PATH=" $HOME /arduino_ide"
48
- export ARDUINO_USR_PATH=" $HOME /Arduino"
44
+ export ARDUINO_IDE_PATH=" $HOME /arduino_ide"
45
+ export ARDUINO_USR_PATH=" $HOME /Arduino"
49
46
fi
50
47
51
48
# Updated as of Nov 3rd 2020
@@ -55,184 +52,29 @@ ARDUINO_IDE_URL="https://github.com/espressif/arduino-esp32/releases/download/1.
55
52
# ARDUINO_IDE_URL="https://www.arduino.cc/download.php?f=/arduino-nightly-"
56
53
57
54
if [ ! -d " $ARDUINO_IDE_PATH " ]; then
58
- echo " Installing Arduino IDE on $OS_NAME ..."
59
- echo " Downloading '$ARDUINO_IDE_URL$OS_NAME .$ARCHIVE_FORMAT ' to 'arduino.$ARCHIVE_FORMAT ' ..."
60
- if [ " $OS_IS_LINUX " == " 1" ]; then
61
- wget -O " arduino.$ARCHIVE_FORMAT " " $ARDUINO_IDE_URL$OS_NAME .$ARCHIVE_FORMAT " > /dev/null 2>&1
62
- echo " Extracting 'arduino.$ARCHIVE_FORMAT ' ..."
63
- tar xf " arduino.$ARCHIVE_FORMAT " > /dev/null
64
- mv arduino-nightly " $ARDUINO_IDE_PATH "
65
- else
66
- curl -o " arduino.$ARCHIVE_FORMAT " -L " $ARDUINO_IDE_URL$OS_NAME .$ARCHIVE_FORMAT " > /dev/null 2>&1
67
- echo " Extracting 'arduino.$ARCHIVE_FORMAT ' ..."
68
- unzip " arduino.$ARCHIVE_FORMAT " > /dev/null
69
- if [ " $OS_IS_MACOS " == " 1" ]; then
70
- mv " Arduino.app" " /Applications/Arduino.app"
71
- else
72
- mv arduino-nightly " $ARDUINO_IDE_PATH "
73
- fi
74
- fi
75
- rm -rf " arduino.$ARCHIVE_FORMAT "
76
-
77
- mkdir -p " $ARDUINO_USR_PATH /libraries"
78
- mkdir -p " $ARDUINO_USR_PATH /hardware"
79
-
80
- echo " Arduino IDE Installed in '$ARDUINO_IDE_PATH '"
81
- echo " "
82
- fi
83
-
84
- function build_sketch(){ # build_sketch <fqbn> <path-to-ino> [extra-options]
85
- if [ " $# " -lt 2 ]; then
86
- echo " ERROR: Illegal number of parameters"
87
- echo " USAGE: build_sketch <fqbn> <path-to-ino> [extra-options]"
88
- return 1
89
- fi
90
-
91
- local fqbn=" $1 "
92
- local sketch=" $2 "
93
- local xtra_opts=" $3 "
94
- local win_opts=" "
95
- if [ " $OS_IS_WINDOWS " == " 1" ]; then
96
- local ctags_version=` ls " $ARDUINO_IDE_PATH /tools-builder/ctags/" `
97
- local preprocessor_version=` ls " $ARDUINO_IDE_PATH /tools-builder/arduino-preprocessor/" `
98
- win_opts=" -prefs=runtime.tools.ctags.path=$ARDUINO_IDE_PATH /tools-builder/ctags/$ctags_version -prefs=runtime.tools.arduino-preprocessor.path=$ARDUINO_IDE_PATH /tools-builder/arduino-preprocessor/$preprocessor_version "
99
- fi
100
-
101
- # echo ""
102
- # echo "Compiling '"$(basename "$sketch")"' ..."
103
- mkdir -p " $ARDUINO_BUILD_DIR "
104
- mkdir -p " $ARDUINO_CACHE_DIR "
105
- $ARDUINO_IDE_PATH /arduino-builder -compile -logger=human -core-api-version=10810 \
106
- -fqbn=$fqbn \
107
- -warnings=" all" \
108
- -tools " $ARDUINO_IDE_PATH /tools-builder" \
109
- -tools " $ARDUINO_IDE_PATH /tools" \
110
- -built-in-libraries " $ARDUINO_IDE_PATH /libraries" \
111
- -hardware " $ARDUINO_IDE_PATH /hardware" \
112
- -hardware " $ARDUINO_USR_PATH /hardware" \
113
- -libraries " $ARDUINO_USR_PATH /libraries" \
114
- -build-cache " $ARDUINO_CACHE_DIR " \
115
- -build-path " $ARDUINO_BUILD_DIR " \
116
- $win_opts $xtra_opts " $sketch "
117
- }
118
-
119
- function count_sketches() # count_sketches <examples-path> <target-mcu>
120
- {
121
- local examples=" $1 "
122
- local target=" $2 "
123
- rm -rf sketches.txt
124
- if [ ! -d " $examples " ]; then
125
- touch sketches.txt
126
- return 0
127
- fi
128
- local sketches=$( find $examples -name * .ino)
129
- local sketchnum=0
130
- for sketch in $sketches ; do
131
- local sketchdir=$( dirname $sketch )
132
- local sketchdirname=$( basename $sketchdir )
133
- local sketchname=$( basename $sketch )
134
- if [[ " $sketchdirname .ino" != " $sketchname " ]]; then
135
- continue
136
- elif [[ -f " $sketchdir /.skip.$target " ]]; then
137
- continue
55
+ echo " Installing Arduino IDE on $OS_NAME ..."
56
+ echo " Downloading '$ARDUINO_IDE_URL$OS_NAME .$ARCHIVE_FORMAT ' to 'arduino.$ARCHIVE_FORMAT ' ..."
57
+ if [ " $OS_IS_LINUX " == " 1" ]; then
58
+ wget -O " arduino.$ARCHIVE_FORMAT " " $ARDUINO_IDE_URL$OS_NAME .$ARCHIVE_FORMAT " > /dev/null 2>&1
59
+ echo " Extracting 'arduino.$ARCHIVE_FORMAT ' ..."
60
+ tar xf " arduino.$ARCHIVE_FORMAT " > /dev/null
61
+ mv arduino-nightly " $ARDUINO_IDE_PATH "
62
+ else
63
+ curl -o " arduino.$ARCHIVE_FORMAT " -L " $ARDUINO_IDE_URL$OS_NAME .$ARCHIVE_FORMAT " > /dev/null 2>&1
64
+ echo " Extracting 'arduino.$ARCHIVE_FORMAT ' ..."
65
+ unzip " arduino.$ARCHIVE_FORMAT " > /dev/null
66
+ if [ " $OS_IS_MACOS " == " 1" ]; then
67
+ mv " Arduino.app" " /Applications/Arduino.app"
138
68
else
139
- echo $sketch >> sketches.txt
140
- sketchnum=$(( $sketchnum + 1 ))
69
+ mv arduino-nightly " $ARDUINO_IDE_PATH "
141
70
fi
142
- done
143
- return $sketchnum
144
- }
145
-
146
- function build_sketches() # build_sketches <fqbn> <target-mcu> <examples-path> <chunk> <total-chunks> [extra-options]
147
- {
148
- local fqbn=$1
149
- local target=" $2 "
150
- local examples=$3
151
- local chunk_idex=$4
152
- local chunks_num=$5
153
- local xtra_opts=$6
154
-
155
- if [ " $# " -lt 3 ]; then
156
- echo " ERROR: Illegal number of parameters"
157
- echo " USAGE: build_sketches <fqbn> <target-mcu <examples-path> [<chunk> <total-chunks>] [extra-options]"
158
- return 1
159
- fi
160
-
161
- if [ " $# " -lt 5 ]; then
162
- chunk_idex=" 0"
163
- chunks_num=" 1"
164
- xtra_opts=$4
165
- fi
166
-
167
- if [ " $chunks_num " -le 0 ]; then
168
- echo " ERROR: Chunks count must be positive number"
169
- return 1
170
- fi
171
- if [ " $chunk_idex " -ge " $chunks_num " ] && [ " $chunks_num " -ge 2 ]; then
172
- echo " ERROR: Chunk index must be less than chunks count"
173
- return 1
174
- fi
175
-
176
- set +e
177
- count_sketches " $examples " " $target "
178
- local sketchcount=$?
179
- set -e
180
- local sketches=$( cat sketches.txt)
181
- rm -rf sketches.txt
182
-
183
- local chunk_size=$(( $sketchcount / $chunks_num ))
184
- local all_chunks=$(( $chunks_num * $chunk_size ))
185
- if [ " $all_chunks " -lt " $sketchcount " ]; then
186
- chunk_size=$(( $chunk_size + 1 ))
187
71
fi
72
+ rm -rf " arduino.$ARCHIVE_FORMAT "
188
73
189
- local start_index=0
190
- local end_index=0
191
- if [ " $chunk_idex " -ge " $chunks_num " ]; then
192
- start_index=$chunk_idex
193
- end_index=$sketchcount
194
- else
195
- start_index=$(( $chunk_idex * $chunk_size ))
196
- if [ " $sketchcount " -le " $start_index " ]; then
197
- echo " Skipping job"
198
- return 0
199
- fi
74
+ mkdir -p " $ARDUINO_USR_PATH /libraries"
75
+ mkdir -p " $ARDUINO_USR_PATH /hardware"
200
76
201
- end_index=$(( $(( $chunk_idex + 1 )) * $chunk_size ))
202
- if [ " $end_index " -gt " $sketchcount " ]; then
203
- end_index=$sketchcount
204
- fi
205
- fi
206
-
207
- local start_num=$(( $start_index + 1 ))
208
- echo " Found $sketchcount Sketches for target '$target '" ;
209
- echo " Chunk Index : $chunk_idex "
210
- echo " Chunk Count : $chunks_num "
211
- echo " Chunk Size : $chunk_size "
212
- echo " Start Sketch: $start_num "
213
- echo " End Sketch : $end_index "
77
+ echo " Arduino IDE Installed in '$ARDUINO_IDE_PATH '"
78
+ echo " "
79
+ fi
214
80
215
- local sketchnum=0
216
- for sketch in $sketches ; do
217
- local sketchdir=$( dirname $sketch )
218
- local sketchdirname=$( basename $sketchdir )
219
- local sketchname=$( basename $sketch )
220
- if [ " ${sketchdirname} .ino" != " $sketchname " ] \
221
- || [ -f " $sketchdir /.skip.$target " ]; then
222
- continue
223
- fi
224
- sketchnum=$(( $sketchnum + 1 ))
225
- if [ " $sketchnum " -le " $start_index " ] \
226
- || [ " $sketchnum " -gt " $end_index " ]; then
227
- continue
228
- fi
229
- echo " "
230
- echo " Building Sketch Index $(( $sketchnum - 1 )) - $sketchdirname "
231
- build_sketch " $fqbn " " $sketch " " $xtra_opts "
232
- local result=$?
233
- if [ $result -ne 0 ]; then
234
- return $result
235
- fi
236
- done
237
- return 0
238
- }
0 commit comments