insert --config=bp2build before -- in b args

Bazel also supports `--foo bar` as another way to mean `--foo=bar`,
The current implementation would accidentally catch that and make it
`--foo --config=bp2build bar`. This CL instead requires that additional
arguments to the target come after a `--`.

E.g.
```
b run --args-for-bazel //foo -- --args-for-foo
```

Test: b build //build/bazel/scripts/difftool:difftool
Test: b run //build/bazel/scripts/difftool/difftool.py --level=FINE /tmp/legacyBuildFiles /tmp/bazelBuildFiles --file_type=object
Change-Id: I534caab04e4c919d4e7b6dc83b8a88e020626b18
This commit is contained in:
Sam Delmerico
2022-08-29 17:39:44 -04:00
parent d50af652bc
commit e31d7de7b0

View File

@@ -1849,17 +1849,21 @@ function b()
# Add the --config=bp2build after the first argument that doesn't start with a dash. That should be the bazel
# command. (build, test, run, ect) If the --config was added at the end, it wouldn't work with commands like:
# b run //foo -- --args-for-foo
local previous_args=""
for arg in $@;
do
previous_args+="$arg "
shift
if [[ $arg != -* ]]; # if $arg doesn't start with a dash
local config_set=0
local bazel_args_with_config=""
for arg in $@; do
if [[ $arg == "--" && $config_set -ne 1 ]]; # if we find --, insert config argument here
then
break
bazel_args_with_config+="--config=bp2build -- "
config_set=1
else
bazel_args_with_config+="$arg "
fi
done
bazel $previous_args --config=bp2build $@
if [[ $config_set -ne 1 ]]; then
bazel_args_with_config+="--config=bp2build "
fi
eval "bazel $bazel_args_with_config"
fi
)