@@ -159,11 +159,11 @@ function install_rust_toolchain() {
159
159
}
160
160
161
161
function source_cargo() {
162
- if [ -e " ${HOME} /.cargo/env" ]; then
162
+ if [[ -e " ${HOME} /.cargo/env" ] ]; then
163
163
source " ${HOME} /.cargo/env"
164
164
export CARGO_HOME=" ${HOME} /.cargo"
165
165
else
166
- if [ -n " ${CARGO_HOME} " ] && [ -e " ${CARGO_HOME} /env" ]; then
166
+ if [[ -n " ${CARGO_HOME} " ]] && [[ -e " ${CARGO_HOME} /env" ] ]; then
167
167
source ${CARGO_HOME} /env
168
168
else
169
169
echo " Warning: Unable to source .cargo/env"
@@ -181,7 +181,7 @@ function install_esp_idf() {
181
181
" ${IDF_PATH} "
182
182
${IDF_PATH} /install.sh " ${BUILD_TARGET} "
183
183
python3 ${IDF_PATH} /tools/idf_tools.py install cmake
184
- if [ " ${MINIFIED_ESP_IDF} " == " YES" ]; then
184
+ if [[ " ${MINIFIED_ESP_IDF} " == " YES" ] ]; then
185
185
rm -rf ${IDF_TOOLS_PATH} /dist
186
186
rm -rf ${IDF_TOOLS_PATH} /frameworks/esp-idf/docs
187
187
rm -rf ${IDF_TOOLS_PATH} /frameworks/esp-idf/examples
@@ -195,8 +195,8 @@ function install_gcc() {
195
195
GCC_FILE=" $1 -gcc${GCC_VERSION} -${GCC_ARCH} .tar.gz"
196
196
GCC_DIST_URL=" ${GCC_DIST_MIRROR} /${GCC_PATCH} /${GCC_FILE} "
197
197
echo " * installing ${IDF_TOOL_GCC} "
198
- if [ ! -d ${IDF_TOOL_GCC} ]; then
199
- if [ ! -f " ${GCC_FILE} " ]; then
198
+ if [[ ! -d ${IDF_TOOL_GCC} ] ]; then
199
+ if [[ ! -f " ${GCC_FILE} " ] ]; then
200
200
echo " ** Downloading ${GCC_DIST_URL} "
201
201
curl -LO " ${GCC_DIST_URL} "
202
202
fi
@@ -211,31 +211,31 @@ function install_gcc() {
211
211
}
212
212
213
213
function install_rust_xtensa_toolchain() {
214
- if [ -d " ${TOOLCHAIN_DESTINATION_DIR} " ]; then
214
+ if [[ -d " ${TOOLCHAIN_DESTINATION_DIR} " ] ]; then
215
215
echo " Previous installation of toolchain exist in: ${TOOLCHAIN_DESTINATION_DIR} "
216
216
echo " Please, remove the directory before new installation."
217
217
exit 1
218
218
fi
219
219
220
- if [ ! -d ${TOOLCHAIN_DESTINATION_DIR} ]; then
220
+ if [[ ! -d ${TOOLCHAIN_DESTINATION_DIR} ] ]; then
221
221
mkdir -p ${TOOLCHAIN_DESTINATION_DIR}
222
- if [ ! -f ${RUST_DIST} .tar.xz ]; then
222
+ if [[ ! -f ${RUST_DIST} .tar.xz ] ]; then
223
223
echo " ** downloading: ${RUST_DIST_URL} "
224
224
curl -LO " ${RUST_DIST_URL} "
225
225
mkdir -p ${RUST_DIST}
226
226
tar xf ${RUST_DIST} .tar.xz --strip-components=1 -C ${RUST_DIST}
227
227
fi
228
228
./${RUST_DIST} /install.sh --destdir=${TOOLCHAIN_DESTINATION_DIR} --prefix=" " --without=rust-docs
229
229
230
- if [ ! -f ${RUST_SRC_DIST} .tar.xz ]; then
230
+ if [[ ! -f ${RUST_SRC_DIST} .tar.xz ] ]; then
231
231
curl -LO " https://github.com/esp-rs/rust-build/releases/download/v${TOOLCHAIN_VERSION} /${RUST_SRC_DIST} .tar.xz"
232
232
mkdir -p ${RUST_SRC_DIST}
233
233
tar xf ${RUST_SRC_DIST} .tar.xz --strip-components=1 -C ${RUST_SRC_DIST}
234
234
fi
235
235
./${RUST_SRC_DIST} /install.sh --destdir=${TOOLCHAIN_DESTINATION_DIR} --prefix=" " --without=rust-docs
236
236
fi
237
237
238
- if [ -z " ${ESP_IDF_VERSION} " ]; then
238
+ if [[ -z " ${ESP_IDF_VERSION} " ] ]; then
239
239
if [[ " ${BUILD_TARGET} " =~ " esp32s3" ]]; then
240
240
install_gcc " xtensa-esp32s3-elf"
241
241
fi
@@ -250,8 +250,8 @@ function install_rust_xtensa_toolchain() {
250
250
251
251
function install_llvm_clang() {
252
252
echo " * installing ${IDF_TOOL_XTENSA_ELF_CLANG} "
253
- if [ ! -d ${IDF_TOOL_XTENSA_ELF_CLANG} ]; then
254
- if [ ! -f " ${LLVM_FILE} " ]; then
253
+ if [[ ! -d ${IDF_TOOL_XTENSA_ELF_CLANG} ] ]; then
254
+ if [[ ! -f " ${LLVM_FILE} " ] ]; then
255
255
echo " ** Downloading ${LLVM_DIST_URL} "
256
256
curl -LO " ${LLVM_DIST_URL} "
257
257
fi
@@ -280,7 +280,7 @@ function clear_download_cache() {
280
280
echo " - ${LLVM_FILE} "
281
281
rm -f " ${LLVM_FILE} "
282
282
283
- if [ -z " ${ESP_IDF_VERSION} " ]; then
283
+ if [[ -z " ${ESP_IDF_VERSION} " ] ]; then
284
284
echo " - *-elf-gcc*.tar.gz"
285
285
rm -f * -elf-gcc* .tar.gz
286
286
fi
@@ -362,29 +362,28 @@ function install_crate_from_tar_gz() {
362
362
}
363
363
364
364
function install_extra_crates() {
365
-
366
- if [[ " ${EXTRA_CRATES} " =~ " cargo-espflash" ]] && [ -n " ${CARGO_ESPFLASH_URL} " ] && [ -n " ${CARGO_ESPFLASH_BIN} " ]; then
365
+ if [[ " ${EXTRA_CRATES} " =~ " cargo-espflash" ]] && [[ -n " ${CARGO_ESPFLASH_URL} " ]] && [[ -n " ${CARGO_ESPFLASH_BIN} " ]]; then
367
366
install_crate_from_zip " ${CARGO_ESPFLASH_URL} " " ${CARGO_ESPFLASH_BIN} "
368
367
EXTRA_CRATES=" ${EXTRA_CRATES/ cargo-espflash/ } "
369
368
fi
370
369
371
- if [[ " ${EXTRA_CRATES} " =~ " espflash" ]] && [ -n " ${ESPFLASH_URL} " ] && [ -n " ${ESPFLASH_BIN} " ]; then
370
+ if [[ " ${EXTRA_CRATES} " =~ " espflash" ]] && [[ -n " ${ESPFLASH_URL} " ]] && [[ -n " ${ESPFLASH_BIN} " ] ]; then
372
371
install_crate_from_zip " ${ESPFLASH_URL} " " ${ESPFLASH_BIN} "
373
372
EXTRA_CRATES=" ${EXTRA_CRATES/ espflash/ } "
374
373
fi
375
374
376
- if [[ " ${EXTRA_CRATES} " =~ " ldproxy" ]] && [ -n " ${LDPROXY_URL} " ] && [ -n " ${LDPROXY_BIN} " ]; then
375
+ if [[ " ${EXTRA_CRATES} " =~ " ldproxy" ]] && [[ -n " ${LDPROXY_URL} " ]] && [[ -n " ${LDPROXY_BIN} " ] ]; then
377
376
install_crate_from_zip " ${LDPROXY_URL} " " ${LDPROXY_BIN} "
378
377
EXTRA_CRATES=" ${EXTRA_CRATES/ ldproxy/ } "
379
378
fi
380
379
381
- if [[ " ${EXTRA_CRATES} " =~ " cargo-generate" ]] && [ -n " ${GENERATE_URL} " ] && [ -n " ${GENERATE_BIN} " ]; then
380
+ if [[ " ${EXTRA_CRATES} " =~ " cargo-generate" ]] && [[ -n " ${GENERATE_URL} " ]] && [[ -n " ${GENERATE_BIN} " ] ]; then
382
381
install_crate_from_tar_gz " ${GENERATE_URL} " " ${GENERATE_BIN} "
383
382
EXTRA_CRATES=" ${EXTRA_CRATES/ cargo-generate/ } "
384
383
fi
385
384
386
385
if [[ " ${EXTRA_CRATES} " =~ " web-flash" ]]; then
387
- if [ -n " ${WEB_FLASH_URL} " ] && [ -n " ${WEB_FLASH_BIN} " ]; then
386
+ if [[ -n " ${WEB_FLASH_URL} " ]] && [[ -n " ${WEB_FLASH_BIN} " ] ]; then
388
387
install_crate_from_zip " ${WEB_FLASH_URL} " " ${WEB_FLASH_BIN} "
389
388
else
390
389
cargo install web-flash --git https://github.com/bjoernQ/esp-web-flash-server
@@ -393,7 +392,7 @@ function install_extra_crates() {
393
392
fi
394
393
395
394
if [[ " ${EXTRA_CRATES} " =~ " wokwi-server" ]]; then
396
- if [ -n " ${WOKWI_SERVER_URL} " ] && [ -n " ${WOKWI_SERVER_BIN} " ]; then
395
+ if [[ -n " ${WOKWI_SERVER_URL} " ]] && [[ -n " ${WOKWI_SERVER_BIN} " ] ]; then
397
396
install_crate_from_zip " ${WOKWI_SERVER_URL} " " ${WOKWI_SERVER_BIN} "
398
397
else
399
398
RUSTFLAGS=" --cfg tokio_unstable" cargo install wokwi-server --git https://github.com/MabezDev/wokwi-server --locked
@@ -407,7 +406,7 @@ function install_extra_crates() {
407
406
}
408
407
409
408
function install_system_packages() {
410
- if [ -z " ${SYSTEM_PACKAGES} " ]; then
409
+ if [[ -z " ${SYSTEM_PACKAGES} " ] ]; then
411
410
return
412
411
fi
413
412
442
441
443
442
# Check minimal rustc version
444
443
RUSTC_MINOR_VERSION=$( rustc --version | sed -e ' s/^rustc 1\.\([^.]*\).*/\1/' )
445
- if [ " ${RUSTC_MINOR_VERSION} " -lt " ${RUSTC_MINIMAL_MINOR_VERSION} " ]; then
444
+ if [[ " ${RUSTC_MINOR_VERSION} " -lt " ${RUSTC_MINIMAL_MINOR_VERSION} " ] ]; then
446
445
echo " rustc version is too low, requires 1.${RUSTC_MINIMAL_MINOR_VERSION} "
447
446
echo " calling rustup"
448
447
install_rustup
@@ -474,7 +473,7 @@ if [[ "${EXTRA_CRATES}" =~ "cargo-generate" ]]; then
474
473
fi
475
474
476
475
# Configuration overrides for specific architectures
477
- if [ ${ARCH} == " aarch64-apple-darwin" ]; then
476
+ if [[ ${ARCH} == " aarch64-apple-darwin" ] ]; then
478
477
GCC_ARCH=" macos"
479
478
CARGO_ESPFLASH_URL=" https://github.com/esp-rs/espflash/releases/latest/download/cargo-espflash-${ARCH} .zip"
480
479
CARGO_ESPFLASH_BIN=" ${CARGO_HOME} /bin/cargo-espflash"
@@ -486,7 +485,7 @@ if [ ${ARCH} == "aarch64-apple-darwin" ]; then
486
485
WOKWI_SERVER_BIN=" ${CARGO_HOME} /bin/wokwi-server"
487
486
WEB_FLASH_URL=" https://github.com/bjoernQ/esp-web-flash-server/releases/latest/download/web-flash-${ARCH} .zip"
488
487
WEB_FLASH_BIN=" ${CARGO_HOME} /bin/web-flash"
489
- elif [ ${ARCH} == " x86_64-apple-darwin" ]; then
488
+ elif [[ ${ARCH} == " x86_64-apple-darwin" ] ]; then
490
489
GCC_ARCH=" macos"
491
490
CARGO_ESPFLASH_URL=" https://github.com/esp-rs/espflash/releases/latest/download/cargo-espflash-${ARCH} .zip"
492
491
CARGO_ESPFLASH_BIN=" ${CARGO_HOME} /bin/cargo-espflash"
@@ -502,7 +501,7 @@ elif [ ${ARCH} == "x86_64-apple-darwin" ]; then
502
501
WOKWI_SERVER_BIN=" ${CARGO_HOME} /bin/wokwi-server"
503
502
WEB_FLASH_URL=" https://github.com/bjoernQ/esp-web-flash-server/releases/latest/download/web-flash-${ARCH} .zip"
504
503
WEB_FLASH_BIN=" ${CARGO_HOME} /bin/web-flash"
505
- elif [ ${ARCH} == " x86_64-unknown-linux-gnu" ]; then
504
+ elif [[ ${ARCH} == " x86_64-unknown-linux-gnu" ] ]; then
506
505
GCC_ARCH=" linux-amd64"
507
506
SYSTEM_PACKAGES=" "
508
507
CARGO_ESPFLASH_URL=" https://github.com/esp-rs/espflash/releases/latest/download/cargo-espflash-${ARCH} .zip"
@@ -519,7 +518,7 @@ elif [ ${ARCH} == "x86_64-unknown-linux-gnu" ]; then
519
518
WOKWI_SERVER_BIN=" ${CARGO_HOME} /bin/wokwi-server"
520
519
WEB_FLASH_URL=" https://github.com/bjoernQ/esp-web-flash-server/releases/latest/download/web-flash-${ARCH} .zip"
521
520
WEB_FLASH_BIN=" ${CARGO_HOME} /bin/web-flash"
522
- elif [ ${ARCH} == " aarch64-unknown-linux-gnu" ]; then
521
+ elif [[ ${ARCH} == " aarch64-unknown-linux-gnu" ] ]; then
523
522
GCC_ARCH=" linux-arm64"
524
523
SYSTEM_PACKAGES=" "
525
524
if [[ " ${EXTRA_CRATES} " =~ " cargo-generate" ]]; then
@@ -530,7 +529,7 @@ elif [ ${ARCH} == "aarch64-unknown-linux-gnu" ]; then
530
529
CARGO_ESPFLASH_BIN=" ${CARGO_HOME} /bin/cargo-espflash"
531
530
ESPFLASH_URL=" https://github.com/esp-rs/espflash/releases/latest/download/espflash-${ARCH} .zip"
532
531
ESPFLASH_BIN=" ${CARGO_HOME} /bin/espflash"
533
- elif [ ${ARCH} == " x86_64-pc-windows-msvc" ]; then
532
+ elif [[ ${ARCH} == " x86_64-pc-windows-msvc" ] ]; then
534
533
GCC_ARCH=" win64"
535
534
SYSTEM_PACKAGES=" "
536
535
CARGO_ESPFLASH_URL=" https://github.com/esp-rs/espflash/releases/latest/download/cargo-espflash-${ARCH} .zip"
@@ -565,7 +564,7 @@ IDF_TOOL_XTENSA_ELF_CLANG="${IDF_TOOLS_PATH}/tools/xtensa-esp32-elf-clang/${LLVM
565
564
566
565
RUST_DIST_URL=" https://github.com/esp-rs/rust-build/releases/download/v${TOOLCHAIN_VERSION} /${RUST_DIST} .tar.xz"
567
566
568
- if [ " ${INSTALLATION_MODE} " == " uninstall" ] || [ " ${INSTALLATION_MODE} " == " reinstall" ]; then
567
+ if [[ " ${INSTALLATION_MODE} " == " uninstall" ]] || [[ " ${INSTALLATION_MODE} " == " reinstall" ] ]; then
569
568
echo " Removing:"
570
569
571
570
echo " - ${TOOLCHAIN_DESTINATION_DIR} "
@@ -574,11 +573,11 @@ if [ "${INSTALLATION_MODE}" == "uninstall" ] || [ "${INSTALLATION_MODE}" == "rei
574
573
echo " - ${IDF_TOOL_XTENSA_ELF_CLANG} "
575
574
rm -rf " ${IDF_TOOL_XTENSA_ELF_CLANG} "
576
575
577
- if [ " ${CLEAR_DOWNLOAD_CACHE} " == " YES" ]; then
576
+ if [[ " ${CLEAR_DOWNLOAD_CACHE} " == " YES" ] ]; then
578
577
clear_download_cache
579
578
fi
580
579
581
- if [ " ${INSTALLATION_MODE} " == " uninstall" ]; then
580
+ if [[ " ${INSTALLATION_MODE} " == " uninstall" ] ]; then
582
581
exit 0
583
582
fi
584
583
fi
@@ -589,24 +588,25 @@ if [[ "${BUILD_TARGET}" =~ esp32s[2|3] || "${BUILD_TARGET}" =~ esp32[,|\ ] || "$
589
588
install_llvm_clang
590
589
fi
591
590
592
- if [ -n " ${ESP_IDF_VERSION} " ]; then
591
+ if [[ -n " ${ESP_IDF_VERSION} " ] ]; then
593
592
install_esp_idf
594
593
elif [[ " ${BUILD_TARGET} " =~ " esp32c3" ]]; then
595
594
install_gcc " riscv32-esp-elf"
596
595
fi
597
596
install_extra_crates
598
597
599
- if [ " ${CLEAR_DOWNLOAD_CACHE} " == " YES" ]; then
598
+ if [[ " ${CLEAR_DOWNLOAD_CACHE} " == " YES" ] ]; then
600
599
clear_download_cache
601
600
fi
602
601
603
602
# Either store the export instructions in a file to be sourced later or print instructions
604
603
# directly to the terminal to be used immediately.
605
604
if [[ -n " ${EXPORT_FILE:- } " ]]; then
605
+ echo -n " " > " ${EXPORT_FILE} "
606
606
if [[ ${IS_XTENSA_INSTALLED} -eq 1 ]]; then
607
607
echo export LIBCLANG_PATH=\" ${IDF_TOOL_XTENSA_ELF_CLANG} /lib/\" >> " ${EXPORT_FILE} "
608
608
fi
609
- if [ -n " ${ESP_IDF_VERSION} " ]; then
609
+ if [[ -n " ${ESP_IDF_VERSION} " ] ]; then
610
610
echo " export IDF_TOOLS_PATH=${IDF_TOOLS_PATH} " >> " ${EXPORT_FILE} "
611
611
echo " source ${IDF_PATH} /export.sh /dev/null 2>&1" >> " ${EXPORT_FILE} "
612
612
else
0 commit comments