# In modules/jq/BUILD.bazel load("@bazel_skylib//lib:selects.bzl", "selects") exports_files([ "simple_executable_wrapper.sh.tpl", ]) # Platform detection config_setting( name = "darwin", constraint_values = ["@platforms//os:osx"], ) config_setting( name = "linux", constraint_values = ["@platforms//os:linux"], ) # Download jq binaries genrule( name = "download_jq_linux", outs = ["jq-linux64"], cmd = """ curl -L "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64" -o "$@" chmod +x "$@" """, ) genrule( name = "download_jq_macos", outs = ["jq-osx-amd64"], cmd = """ curl -L "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64" -o "$@" chmod +x "$@" """, ) # Create jq binary target for each platform genrule( name = "jq_linux_bin", srcs = [":jq-linux64"], outs = ["jq_linux"], cmd = "cp $< $@ && chmod +x $@", executable = True, ) genrule( name = "jq_macos_bin", srcs = [":jq-osx-amd64"], outs = ["jq_macos"], cmd = "cp $< $@ && chmod +x $@", executable = True, ) # Create platform-specific filegroups filegroup( name = "jq_bin_linux", srcs = [":jq_linux"], visibility = ["//visibility:public"], ) filegroup( name = "jq_bin_macos", srcs = [":jq_macos"], visibility = ["//visibility:public"], ) # Create a binary target for jq sh_binary( name = "jq", srcs = select({ ":darwin": [":jq_macos"], ":linux": [":jq_linux"], "//conditions:default": [":jq_linux"], }), visibility = ["//visibility:public"], )