Skip to content

Commit

Permalink
Make bootstrap.sh more friendly to other shells. (#27392)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
andy31415 authored and pull[bot] committed Aug 10, 2023
1 parent a805388 commit f43e437
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
1 change: 1 addition & 0 deletions .restyled.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ exclude:
- "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:
Expand Down
15 changes: 9 additions & 6 deletions scripts/setup/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ _install_additional_pip_requirements() {
shift

# figure out additional pip install items
while [[ $# -gt 0 ]]; do
while [ $# -gt 0 ]; do
case $1 in
-p | --platform)
_SETUP_PLATFORM=$2
Expand All @@ -32,13 +32,14 @@ _install_additional_pip_requirements() {
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..."
Expand All @@ -47,6 +48,8 @@ _install_additional_pip_requirements() {
-c "$_CHIP_ROOT/scripts/setup/constraints.txt"
fi
done
IFS=$_OLD_IFS
unset _OLD_IFS
unset _PLATFORMS
fi

Expand Down

0 comments on commit f43e437

Please sign in to comment.