| # Scripts for IDE / Environment support for Bazel | 
 | package(default_visibility = ["//visibility:private"]) | 
 |  | 
 | # The master copy of the completion logic lives in bazel-complete-header.bash | 
 | # and bazel-complete-template.bash. You should make edits in those files. | 
 | genrule( | 
 |     name = "bash_completion", | 
 |     outs = ["bazel-complete.bash"], | 
 |     cmd = """ | 
 |     TMPDIR=$$(mktemp -d) | 
 |     trap 'rm -rf $$TMPDIR' EXIT | 
 |     $(location //src:bazel) --batch --output_user_root=$$TMPDIR help completion bash > $@ | 
 |     """, | 
 |     tools = ["//src:bazel"], | 
 |     visibility = [ | 
 |         "//scripts/packages:__subpackages__", | 
 |         "//src/test/py/bazel:__pkg__", | 
 |     ], | 
 | ) | 
 |  | 
 | sh_test( | 
 |     name = "bash_completion_test", | 
 |     size = "small", | 
 |     srcs = ["bash_completion_test.sh"], | 
 |     data = [ | 
 |         "bazel-complete.bash", | 
 |         "testenv.sh", | 
 |         "//src/test/shell:bashunit", | 
 |         "@bazel_tools//tools/bash/runfiles", | 
 |     ], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "jq_linux", | 
 |     srcs = select({ | 
 |         "@platforms//cpu:arm64": ["@jq_linux_arm64//file"], | 
 |         "@platforms//cpu:x86_64": ["@jq_linux_amd64//file"], | 
 |         "@platforms//cpu:s390x": ["@jq_linux_s390x//file"], | 
 |     }), | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "jq_macos", | 
 |     srcs = select({ | 
 |         "@platforms//cpu:arm64": ["@jq_macos_arm64//file"], | 
 |         "@platforms//cpu:x86_64": ["@jq_macos_amd64//file"], | 
 |     }), | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "jq", | 
 |     srcs = select({ | 
 |         "@platforms//os:linux": [":jq_linux"], | 
 |         "@platforms//os:macos": [":jq_macos"], | 
 |         "@platforms//os:windows": ["@jq_windows_amd64//file"], | 
 |     }), | 
 | ) | 
 |  | 
 | sh_test( | 
 |     name = "bazel_lockfile_merge_test", | 
 |     size = "small", | 
 |     srcs = ["bazel_lockfile_merge_test.sh"], | 
 |     data = [ | 
 |         "bazel-lockfile-merge.jq", | 
 |         "testenv.sh", | 
 |         ":jq", | 
 |         "//src/test/shell:bashunit", | 
 |         "//src/test/tools/bzlmod:MODULE.bazel.lock", | 
 |         "@bazel_tools//tools/bash/runfiles", | 
 |     ], | 
 |     env = { | 
 |         "JQ_RLOCATIONPATH": "$(rlocationpath :jq)", | 
 |     }, | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "srcs", | 
 |     srcs = glob(["**"]) + [ | 
 |         "//scripts/docs:srcs", | 
 |         "//scripts/packages:srcs", | 
 |         "//scripts/release:srcs", | 
 |         "//scripts/zsh_completion:srcs", | 
 |     ], | 
 |     visibility = ["//:__pkg__"], | 
 | ) | 
 |  | 
 | py_binary( | 
 |     name = "generate_fish_completion", | 
 |     srcs = ["generate_fish_completion.py"], | 
 |     deps = ["//third_party/py/abseil"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "fish_completion", | 
 |     outs = ["bazel.fish"], | 
 |     cmd = " ".join([ | 
 |         "$(location :generate_fish_completion)", | 
 |         "--bazel=$(location //src:bazel)", | 
 |         "--output=$@", | 
 |     ]), | 
 |     tools = [ | 
 |         ":generate_fish_completion", | 
 |         "//src:bazel", | 
 |     ], | 
 |     visibility = ["//scripts/packages:__subpackages__"], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "completion_scripts", | 
 |     srcs = [ | 
 |         "bazel-complete-header.bash", | 
 |         "bazel-complete-template.bash", | 
 |     ], | 
 |     visibility = ["//src/main/java/com/google/devtools/build/lib/runtime/commands:__pkg__"], | 
 | ) |