Skip to content

Commit

Permalink
[6.4.0] Add support for more workspace boundary files to bash complet…
Browse files Browse the repository at this point in the history
…ion (#19281)

Bash completion now also recognized `WORKSPACE.bazel`, `MODULE.bazel`
and `REPO.bazel`.

Also fixes a shellcheck finding.

Closes #19268.

Commit
a0f1976

PiperOrigin-RevId: 557931944
Change-Id: Ia2b6e463f4643d9c0d829845fee4228103cf90a0

Co-authored-by: Fabian Meumertzheim <[email protected]>
  • Loading branch information
bazel-io and fmeum authored Aug 18, 2023
1 parent 8ac1cc1 commit 91bfb53
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 3 deletions.
26 changes: 26 additions & 0 deletions scripts/bash_completion_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -759,4 +759,30 @@ test_info() {
'info --show_make_env '
}

test_workspace_boundary() {
# "Test that workspace boundary files are recognized"
# this test only works for Bazel
if [[ ! " ${COMMAND_ALIASES[*]} " =~ " bazel " ]]; then return; fi

mkdir -p sub_repo/some/pkg
touch sub_repo/some/pkg/BUILD
cd sub_repo 2>/dev/null

touch WORKSPACE.bazel
assert_expansion 'build //s' \
'build //some/'

mv WORKSPACE.bazel MODULE.bazel
assert_expansion 'build //s' \
'build //some/'

mv MODULE.bazel REPO.bazel
assert_expansion 'build //s' \
'build //some/'

rm REPO.bazel
assert_expansion 'build //s' \
'build //sub_repo/'
}

run_suite "Tests of bash completion of 'blaze' command."
10 changes: 7 additions & 3 deletions scripts/bazel-complete-template.bash
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,17 @@ _bazel__get_rule_match_pattern() {
}

# Compute workspace directory. Search for the innermost
# enclosing directory with a WORKSPACE file.
# enclosing directory with a boundary file (see
# src/main/cpp/workspace_layout.cc).
_bazel__get_workspace_path() {
local workspace=$PWD
while true; do
if [ -f "${workspace}/WORKSPACE" ]; then
if [ -f "${workspace}/WORKSPACE" ] || \
[ -f "${workspace}/WORKSPACE.bazel" ] || \
[ -f "${workspace}/MODULE.bazel" ] || \
[ -f "${workspace}/REPO.bazel" ]; then
break
elif [ -z "$workspace" -o "$workspace" = "/" ]; then
elif [ -z "$workspace" ] || [ "$workspace" = "/" ]; then
workspace=$PWD
break;
fi
Expand Down

0 comments on commit 91bfb53

Please sign in to comment.