Make bootstrap.sh more friendly to other shells. (#27392)
* Make bootstrap.sh more friendly to other shells.
I found some CI systems trying to use dash, and that does not
seem to work at all due to it not understanding '<<<' or `[[`.
Dash is still not ok because overall because arguments to `.` do
not get passed along, however it would work as a default.
Changes:
- loop using IFS (and set sh_word_split for ZSH)
- replaced `[[` tests with `[`
* Restyle
* Remove quoting logic that breaks execution
* Stop restyling bootstrap.sh
* Fix path
* Do not permanently alter zsh options, use local_options
* update sh_word_split to shwordsplit. Both seem to work, the non-underscore seems more common in docs
diff --git a/.restyled.yaml b/.restyled.yaml
index a57f9ce..32a77fe 100644
--- a/.restyled.yaml
+++ b/.restyled.yaml
@@ -80,6 +80,7 @@
- "zzz_generated/**/*" # already clang-formatted by our zap tooling
- "src/controller/java/generated/java/**/*" # not formatted: generated files
- "src/controller/java/zap-generated/**/*" # not formatted: generated files
+ - "scripts/setup/bootstrap.sh" # tries to quote loop variable
changed_paths:
diff --git a/scripts/setup/bootstrap.sh b/scripts/setup/bootstrap.sh
index 925183b..2fea8ad 100644
--- a/scripts/setup/bootstrap.sh
+++ b/scripts/setup/bootstrap.sh
@@ -19,7 +19,7 @@
shift
# figure out additional pip install items
- while [[ $# -gt 0 ]]; do
+ while [ $# -gt 0 ]; do
case $1 in
-p | --platform)
_SETUP_PLATFORM=$2
@@ -32,13 +32,14 @@
esac
done
- if ! [ -z "$_SETUP_PLATFORM" ]; then
+ if [ -n "$_SETUP_PLATFORM" ]; then
+ _OLD_IFS=$IFS
+ IFS=","
if [ -n "$ZSH_VERSION" ]; then
- IFS="," read -r -A _PLATFORMS <<<"$_SETUP_PLATFORM"
- else
- IFS="," read -r -a _PLATFORMS <<<"$_SETUP_PLATFORM"
+ setopt local_options shwordsplit
fi
- for platform in "${_PLATFORMS[@]}"; do
+
+ for platform in ${_SETUP_PLATFORM}; do
# Allow none as an alias of nothing extra installed (like -p none)
if [ "$platform" != "none" ]; then
echo "Installing pip requirements for $platform..."
@@ -47,6 +48,8 @@
-c "$_CHIP_ROOT/scripts/setup/constraints.txt"
fi
done
+ IFS=$_OLD_IFS
+ unset _OLD_IFS
unset _PLATFORMS
fi