|  | load("@rules_python//python:defs.bzl", "py_binary") | 
|  | load("@rules_shell//shell:sh_test.bzl", "sh_test") | 
|  |  | 
|  | # 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"], | 
|  | }), | 
|  | visibility = ["//src/test:__subpackages__"], | 
|  | ) | 
|  |  | 
|  | 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__"], | 
|  | ) |