From 6dacab78a9c5746b71aed4b70a255244214ee9d8 Mon Sep 17 00:00:00 2001 From: Thomas Wilks Date: Tue, 2 Apr 2024 11:10:56 +0100 Subject: [PATCH] feat: hermetic `bzip2` `compress` and `decompress` rulesets --- CONTRIBUTING.md | 3 +- MODULE.bazel | 1 + bzip2/compress/BUILD.bazel | 0 bzip2/compress/defs.bzl | 5 + bzip2/compress/rule.bzl | 64 + bzip2/decompress/BUILD.bazel | 0 bzip2/decompress/defs.bzl | 5 + bzip2/decompress/rule.bzl | 64 + bzip2/toolchain/bzip2/BUILD.bazel | 2 +- e2e/MODULE.bazel | 2 + e2e/MODULE.bazel.lock | 2521 ++++++++++++++++++++++++++++- e2e/bzip2/BUILD.bazel | 20 + e2e/fixture/BUILD.bazel | 6 + e2e/fixture/hello-world.txt | 1 + 14 files changed, 2659 insertions(+), 35 deletions(-) create mode 100644 bzip2/compress/BUILD.bazel create mode 100644 bzip2/compress/defs.bzl create mode 100644 bzip2/compress/rule.bzl create mode 100644 bzip2/decompress/BUILD.bazel create mode 100644 bzip2/decompress/defs.bzl create mode 100644 bzip2/decompress/rule.bzl create mode 100644 e2e/bzip2/BUILD.bazel create mode 100644 e2e/fixture/BUILD.bazel create mode 100644 e2e/fixture/hello-world.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 112a2d8..b90590d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,5 +20,4 @@ Release channels for `alpha`, `beta` and `stable` releases are used. The [upstream configuration usage guide][semrel-release-channels-usage] provides information on how to perform a release. -[semrel-release-channels-usage]: - https://gitlab.arm.com/semantic-release/config-release-channels/-/blob/main/README.md?ref_type=heads#usage +[semrel-release-channels-usage]: https://gitlab.arm.com/semantic-release/config-release-channels/-/blob/main/README.md?ref_type=heads#usage diff --git a/MODULE.bazel b/MODULE.bazel index fad641c..01185cd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -6,6 +6,7 @@ module( ], ) +bazel_dep(name = "rules_coreutils", version = "1.0.0-alpha.8") bazel_dep(name = "toolchain_utils", version = "1.0.0-beta.1") bazel_dep(name = "ape", version = "1.0.0-alpha.5") diff --git a/bzip2/compress/BUILD.bazel b/bzip2/compress/BUILD.bazel new file mode 100644 index 0000000..e69de29 diff --git a/bzip2/compress/defs.bzl b/bzip2/compress/defs.bzl new file mode 100644 index 0000000..811f3b5 --- /dev/null +++ b/bzip2/compress/defs.bzl @@ -0,0 +1,5 @@ +load(":rule.bzl", _compress = "bzip2_compress") + +visibility("public") + +bzip2_compress = _compress diff --git a/bzip2/compress/rule.bzl b/bzip2/compress/rule.bzl new file mode 100644 index 0000000..6d0f059 --- /dev/null +++ b/bzip2/compress/rule.bzl @@ -0,0 +1,64 @@ +visibility("//bzip2/...") + +DOC = """Compresses a file with the Burrows-Wheeler (`bzip2`) algorithm. + +```py +bzip2_compress( + name = "compress", + src = "some/file.txt", +) +``` +""" + +ATTRS = { + "src": attr.label( + doc = "A file to compress with the Burrows-Wheeler algorithm.", + mandatory = True, + allow_single_file = True, + ), + "_template": attr.label( + default = "@rules_coreutils//coreutils/redirect:stdout", + allow_single_file = True, + ), +} + +def implementation(ctx): + bzip2 = ctx.toolchains["//bzip2/toolchain/bzip2:type"] + + output = ctx.actions.declare_file("{}.bz2".format(ctx.file.src.basename)) + rendered = ctx.actions.declare_file("{}.{}".format(ctx.label.name, ctx.file._template.extension)) + + ctx.actions.expand_template( + template = ctx.file._template, + output = rendered, + is_executable = True, + substitutions = { + "{{stdout}}": output.path, + }, + ) + + args = ctx.actions.args() + args.add(bzip2.executable.path) + args.add("-czfk").add(ctx.file.src) + + ctx.actions.run( + outputs = [output], + inputs = [ctx.file.src], + arguments = [args], + tools = [bzip2.executable], + executable = rendered, + toolchain = "//bzip2/toolchain/bzip2:type", + mnemonic = "Bzip2Compress", + progress_message = "Compressing %{input} to %{output}", + ) + + return DefaultInfo(files = depset([output])) + +bzip2_compress = rule( + doc = DOC, + attrs = ATTRS, + implementation = implementation, + toolchains = ["//bzip2/toolchain/bzip2:type"], +) + +compress = bzip2_compress diff --git a/bzip2/decompress/BUILD.bazel b/bzip2/decompress/BUILD.bazel new file mode 100644 index 0000000..e69de29 diff --git a/bzip2/decompress/defs.bzl b/bzip2/decompress/defs.bzl new file mode 100644 index 0000000..ec4cea1 --- /dev/null +++ b/bzip2/decompress/defs.bzl @@ -0,0 +1,5 @@ +load(":rule.bzl", _decompress = "bzip2_decompress") + +visibility("public") + +bzip2_decompress = _decompress diff --git a/bzip2/decompress/rule.bzl b/bzip2/decompress/rule.bzl new file mode 100644 index 0000000..773c5e6 --- /dev/null +++ b/bzip2/decompress/rule.bzl @@ -0,0 +1,64 @@ +visibility("//bzip2/...") + +DOC = """A Burrows-Wheeler compressed file to be decompressed." + +```py +bzip2_decompress( + name = "decompress", + src = ":archive.bz2", +) +``` +""" + +ATTRS = { + "src": attr.label( + doc = "Decompresses a Burrows-Wheeler compressed file.", + mandatory = True, + allow_single_file = [".bz2"], + ), + "_template": attr.label( + default = "@rules_coreutils//coreutils/redirect:stdout", + allow_single_file = True, + ), +} + +def implementation(ctx): + bzip2 = ctx.toolchains["//bzip2/toolchain/bzip2:type"] + + output = ctx.actions.declare_file(ctx.file.src.basename.removesuffix(".bz2")) + rendered = ctx.actions.declare_file("{}.{}".format(ctx.label.name, ctx.file._template.extension)) + + ctx.actions.expand_template( + template = ctx.file._template, + output = rendered, + is_executable = True, + substitutions = { + "{{stdout}}": output.path, + }, + ) + + args = ctx.actions.args() + args.add(bzip2.executable.path) + args.add("-cdfk").add(ctx.file.src) + + ctx.actions.run( + outputs = [output], + inputs = [ctx.file.src], + arguments = [args], + tools = [bzip2.executable], + executable = rendered, + toolchain = "//bzip2/toolchain/bzip2:type", + mnemonic = "Bzip2Decompress", + progress_message = "Decompressing %{input} to %{output}", + ) + + return DefaultInfo(files = depset([output])) + +bzip2_decompress = rule( + doc = DOC, + attrs = ATTRS, + implementation = implementation, + toolchains = ["//bzip2/toolchain/bzip2:type"], +) + +decompress = bzip2_decompress diff --git a/bzip2/toolchain/bzip2/BUILD.bazel b/bzip2/toolchain/bzip2/BUILD.bazel index 0af50c1..af166e1 100644 --- a/bzip2/toolchain/bzip2/BUILD.bazel +++ b/bzip2/toolchain/bzip2/BUILD.bazel @@ -21,7 +21,7 @@ alias( toolchain_test( name = "test", args = ["--help"], - stdout = "@toolchain_utils//toolchain/test:empty", stderr = "@toolchain_utils//toolchain/test:non-empty", + stdout = "@toolchain_utils//toolchain/test:empty", toolchains = [":resolved"], ) diff --git a/e2e/MODULE.bazel b/e2e/MODULE.bazel index 6a866cd..bd54c40 100644 --- a/e2e/MODULE.bazel +++ b/e2e/MODULE.bazel @@ -5,6 +5,8 @@ module( ], ) +bazel_dep(name = "rules_coreutils", version = "1.0.0-alpha.8") +bazel_dep(name = "rules_diff", version = "1.0.0-alpha.3") bazel_dep(name = "rules_bzip2", version = "0.0.0") local_path_override( module_name = "rules_bzip2", diff --git a/e2e/MODULE.bazel.lock b/e2e/MODULE.bazel.lock index e0a12c1..bde845c 100644 --- a/e2e/MODULE.bazel.lock +++ b/e2e/MODULE.bazel.lock @@ -1,6 +1,6 @@ { "lockFileVersion": 3, - "moduleFileHash": "eca34b865319abbc5dce552209f82eb37bc338d7d8b912fbc84935653c5b087b", + "moduleFileHash": "a69448641637cf99b6277fe150a741cc9021e38128a3bdef19d8a1aad08e587f", "flags": { "cmdRegistries": [ "https://bcr.bazel.build/" @@ -14,7 +14,7 @@ }, "localOverrideHashes": { "bazel_tools": "922ea6752dc9105de5af957f7a99a6933c0a6a712d23df6aad16a9c399f7e787", - "rules_bzip2": "1d4094b7b8499fa0d723ed1647ec55c296bd705d77f8970222ca4f687e78f850" + "rules_bzip2": "21cee8d7683893b4afcc2197beb4beea919a00c5b3623a4744376602b406d216" }, "moduleDepGraph": { "": { @@ -26,11 +26,2427 @@ "toolchainsToRegister": [], "extensionUsages": [], "deps": { + "rules_coreutils": "rules_coreutils@1.0.0-alpha.8", + "rules_diff": "rules_diff@1.0.0-alpha.3", "rules_bzip2": "rules_bzip2@_", "bazel_tools": "bazel_tools@_", "local_config_platform": "local_config_platform@_" } }, + "rules_coreutils@1.0.0-alpha.8": { + "name": "rules_coreutils", + "version": "1.0.0-alpha.8", + "key": "rules_coreutils@1.0.0-alpha.8", + "repoName": "rules_coreutils", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [ + "//coreutils/toolchain/..." + ], + "extensionUsages": [ + { + "extensionBzlFile": "//:MODULE.bazel", + "extensionName": "_repo_rules", + "usingModule": "rules_coreutils@1.0.0-alpha.8", + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 0, + "column": 0 + }, + "imports": { + "coreutils-arm64-linux-gnu": "coreutils-arm64-linux-gnu", + "coreutils-amd64-linux-gnu": "coreutils-amd64-linux-gnu", + "coreutils-amd64-windows-msvc": "coreutils-amd64-windows-msvc", + "coreutils-arm64-macos-darwin": "coreutils-arm64-macos-darwin", + "coreutils-amd64-macos-darwin": "coreutils-amd64-macos-darwin", + "coreutils": "coreutils", + "busybox-arm64-linux": "busybox-arm64-linux", + "busybox-amd64-linux": "busybox-amd64-linux", + "resolved-busybox": "resolved-busybox", + "which-busybox": "which-busybox", + "resolved-coreutils": "resolved-coreutils", + "which-coreutils": "which-coreutils", + "resolved-arch": "resolved-arch", + "which-arch": "which-arch", + "resolved-base64": "resolved-base64", + "which-base64": "which-base64", + "resolved-basename": "resolved-basename", + "which-basename": "which-basename", + "resolved-cat": "resolved-cat", + "which-cat": "which-cat", + "resolved-chmod": "resolved-chmod", + "which-chmod": "which-chmod", + "resolved-chown": "resolved-chown", + "which-chown": "which-chown", + "resolved-cp": "resolved-cp", + "which-cp": "which-cp", + "resolved-cut": "resolved-cut", + "which-cut": "which-cut", + "resolved-date": "resolved-date", + "which-date": "which-date", + "resolved-dd": "resolved-dd", + "which-dd": "which-dd", + "resolved-df": "resolved-df", + "which-df": "which-df", + "resolved-dirname": "resolved-dirname", + "which-dirname": "which-dirname", + "resolved-du": "resolved-du", + "which-du": "which-du", + "resolved-echo": "resolved-echo", + "which-echo": "which-echo", + "resolved-env": "resolved-env", + "which-env": "which-env", + "resolved-expand": "resolved-expand", + "which-expand": "which-expand", + "resolved-expr": "resolved-expr", + "which-expr": "which-expr", + "resolved-factor": "resolved-factor", + "which-factor": "which-factor", + "resolved-false": "resolved-false", + "which-false": "which-false", + "resolved-fold": "resolved-fold", + "which-fold": "which-fold", + "resolved-head": "resolved-head", + "which-head": "which-head", + "resolved-hostname": "resolved-hostname", + "which-hostname": "which-hostname", + "resolved-install": "resolved-install", + "which-install": "which-install", + "resolved-link": "resolved-link", + "which-link": "which-link", + "resolved-ln": "resolved-ln", + "which-ln": "which-ln", + "resolved-ls": "resolved-ls", + "which-ls": "which-ls", + "resolved-md5sum": "resolved-md5sum", + "which-md5sum": "which-md5sum", + "resolved-mkdir": "resolved-mkdir", + "which-mkdir": "which-mkdir", + "resolved-mktemp": "resolved-mktemp", + "which-mktemp": "which-mktemp", + "resolved-more": "resolved-more", + "which-more": "which-more", + "resolved-mv": "resolved-mv", + "which-mv": "which-mv", + "resolved-nl": "resolved-nl", + "which-nl": "which-nl", + "resolved-nproc": "resolved-nproc", + "which-nproc": "which-nproc", + "resolved-od": "resolved-od", + "which-od": "which-od", + "resolved-paste": "resolved-paste", + "which-paste": "which-paste", + "resolved-printf": "resolved-printf", + "which-printf": "which-printf", + "resolved-pwd": "resolved-pwd", + "which-pwd": "which-pwd", + "resolved-readlink": "resolved-readlink", + "which-readlink": "which-readlink", + "resolved-realpath": "resolved-realpath", + "which-realpath": "which-realpath", + "resolved-rm": "resolved-rm", + "which-rm": "which-rm", + "resolved-rmdir": "resolved-rmdir", + "which-rmdir": "which-rmdir", + "resolved-seq": "resolved-seq", + "which-seq": "which-seq", + "resolved-sha1sum": "resolved-sha1sum", + "which-sha1sum": "which-sha1sum", + "resolved-sha256sum": "resolved-sha256sum", + "which-sha256sum": "which-sha256sum", + "resolved-sha3sum": "resolved-sha3sum", + "which-sha3sum": "which-sha3sum", + "resolved-sha512sum": "resolved-sha512sum", + "which-sha512sum": "which-sha512sum", + "resolved-shred": "resolved-shred", + "which-shred": "which-shred", + "resolved-shuf": "resolved-shuf", + "which-shuf": "which-shuf", + "resolved-sleep": "resolved-sleep", + "which-sleep": "which-sleep", + "resolved-sort": "resolved-sort", + "which-sort": "which-sort", + "resolved-sync": "resolved-sync", + "which-sync": "which-sync", + "resolved-tac": "resolved-tac", + "which-tac": "which-tac", + "resolved-tail": "resolved-tail", + "which-tail": "which-tail", + "resolved-tee": "resolved-tee", + "which-tee": "which-tee", + "resolved-test": "resolved-test", + "which-test": "which-test", + "resolved-touch": "resolved-touch", + "which-touch": "which-touch", + "resolved-tr": "resolved-tr", + "which-tr": "which-tr", + "resolved-true": "resolved-true", + "which-true": "which-true", + "resolved-truncate": "resolved-truncate", + "which-truncate": "which-truncate", + "resolved-uname": "resolved-uname", + "which-uname": "which-uname", + "resolved-unexpand": "resolved-unexpand", + "which-unexpand": "which-unexpand", + "resolved-uniq": "resolved-uniq", + "which-uniq": "which-uniq", + "resolved-unlink": "resolved-unlink", + "which-unlink": "which-unlink", + "resolved-wc": "resolved-wc", + "which-wc": "which-wc", + "resolved-whoami": "resolved-whoami", + "which-whoami": "which-whoami", + "resolved-yes": "resolved-yes", + "which-yes": "which-yes" + }, + "devImports": [], + "tags": [ + { + "tagName": "@download_utils//download/archive:defs.bzl%download_archive", + "attributeValues": { + "srcs": [ + "entrypoint" + ], + "integrity": "sha256-8wMVMgAgf8JQ2+2LdoewkyDo416VEsf9RlMJl4jiBjk=", + "links": { + "coreutils": "entrypoint" + }, + "strip_prefix": "coreutils-0.0.23-aarch64-unknown-linux-gnu", + "urls": [ + "https://github.com/uutils/coreutils/releases/download/0.0.23/coreutils-0.0.23-aarch64-unknown-linux-gnu.tar.gz" + ], + "name": "coreutils-arm64-linux-gnu" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 16, + "column": 12 + } + }, + { + "tagName": "@download_utils//download/archive:defs.bzl%download_archive", + "attributeValues": { + "srcs": [ + "entrypoint" + ], + "integrity": "sha256-u7OMW43Y46aXRRIKULfKdfUW51WJn6G70s5Xxwb6/1g=", + "links": { + "coreutils": "entrypoint" + }, + "strip_prefix": "coreutils-0.0.23-x86_64-unknown-linux-gnu", + "urls": [ + "https://github.com/uutils/coreutils/releases/download/0.0.23/coreutils-0.0.23-x86_64-unknown-linux-gnu.tar.gz" + ], + "name": "coreutils-amd64-linux-gnu" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 16, + "column": 12 + } + }, + { + "tagName": "@download_utils//download/archive:defs.bzl%download_archive", + "attributeValues": { + "srcs": [ + "entrypoint" + ], + "integrity": "sha256-aglIj5JvFGLm2ABwRzWAsZRTTD3X444V3GxHM9pGJS4=", + "links": { + "coreutils.exe": "entrypoint" + }, + "strip_prefix": "coreutils-0.0.23-x86_64-pc-windows-msvc", + "urls": [ + "https://github.com/uutils/coreutils/releases/download/0.0.23/coreutils-0.0.23-x86_64-pc-windows-msvc.zip" + ], + "name": "coreutils-amd64-windows-msvc" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 16, + "column": 12 + } + }, + { + "tagName": "@download_utils//download/archive:defs.bzl%download_archive", + "attributeValues": { + "srcs": [ + "entrypoint" + ], + "integrity": "sha256-KP90sjKxtXDbLC+o5f4+gQnvP3Tr7O0RopME4g9QF5E=", + "links": { + "coreutils": "entrypoint" + }, + "strip_prefix": "coreutils-0.0.23-aarch64-apple-darwin", + "urls": [ + "https://github.com/uutils/coreutils/releases/download/0.0.23/coreutils-0.0.23-aarch64-apple-darwin.tar.gz" + ], + "name": "coreutils-arm64-macos-darwin" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 16, + "column": 12 + } + }, + { + "tagName": "@download_utils//download/archive:defs.bzl%download_archive", + "attributeValues": { + "srcs": [ + "entrypoint" + ], + "integrity": "sha256-SswetVAuK/hMK1r9uBvNnKj5JpSgD0bzkbsHTxOabCo=", + "links": { + "coreutils": "entrypoint" + }, + "strip_prefix": "coreutils-0.0.23-x86_64-apple-darwin", + "urls": [ + "https://github.com/uutils/coreutils/releases/download/0.0.23/coreutils-0.0.23-x86_64-apple-darwin.tar.gz" + ], + "name": "coreutils-amd64-macos-darwin" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 16, + "column": 12 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/select:defs.bzl%toolchain_local_select", + "attributeValues": { + "map": { + "amd64-linux-gnu": "@coreutils-amd64-linux-gnu", + "arm64-linux-gnu": "@coreutils-arm64-linux-gnu", + "amd64-windows": "@coreutils-amd64-windows-msvc", + "arm64-macos-darwin": "@coreutils-arm64-macos-darwin", + "amd64-macos-darwin": "@coreutils-amd64-macos-darwin" + }, + "name": "coreutils" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 40, + "column": 7 + } + }, + { + "tagName": "@download_utils//download/deb:defs.bzl%download_deb", + "attributeValues": { + "srcs": [ + "busybox" + ], + "integrity": "sha256-C0+0zi0/0Woc11BTX5d1ugxC2GOeE9ZjUka6g6DUvc8=", + "strip_prefix": "bin", + "urls": [ + "http://ftp.uk.debian.org/debian/pool/main/b/busybox/busybox-static_1.35.0-4+b3_arm64.deb" + ], + "name": "busybox-arm64-linux" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 59, + "column": 4 + } + }, + { + "tagName": "@download_utils//download/deb:defs.bzl%download_deb", + "attributeValues": { + "srcs": [ + "busybox" + ], + "integrity": "sha256-rMRMIHKVuGEU2kiV71Ouvxhr8839wmmloaCer6xqYNs=", + "strip_prefix": "bin", + "urls": [ + "http://ftp.uk.debian.org/debian/pool/main/b/busybox/busybox-static_1.35.0-4+b3_amd64.deb" + ], + "name": "busybox-amd64-linux" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 67, + "column": 4 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "busybox", + "toolchain_type": "//coreutils/toolchain/busybox:type", + "name": "resolved-busybox" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "busybox", + "name": "which-busybox" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "coreutils", + "toolchain_type": "//coreutils/toolchain/coreutils:type", + "name": "resolved-coreutils" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "coreutils", + "name": "which-coreutils" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "arch", + "toolchain_type": "//coreutils/toolchain/arch:type", + "name": "resolved-arch" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "arch", + "name": "which-arch" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "base64", + "toolchain_type": "//coreutils/toolchain/base64:type", + "name": "resolved-base64" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "base64", + "name": "which-base64" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "basename", + "toolchain_type": "//coreutils/toolchain/basename:type", + "name": "resolved-basename" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "basename", + "name": "which-basename" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "cat", + "toolchain_type": "//coreutils/toolchain/cat:type", + "name": "resolved-cat" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "cat", + "name": "which-cat" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "chmod", + "toolchain_type": "//coreutils/toolchain/chmod:type", + "name": "resolved-chmod" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "chmod", + "name": "which-chmod" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "chown", + "toolchain_type": "//coreutils/toolchain/chown:type", + "name": "resolved-chown" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "chown", + "name": "which-chown" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "cp", + "toolchain_type": "//coreutils/toolchain/cp:type", + "name": "resolved-cp" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "cp", + "name": "which-cp" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "cut", + "toolchain_type": "//coreutils/toolchain/cut:type", + "name": "resolved-cut" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "cut", + "name": "which-cut" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "date", + "toolchain_type": "//coreutils/toolchain/date:type", + "name": "resolved-date" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "date", + "name": "which-date" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "dd", + "toolchain_type": "//coreutils/toolchain/dd:type", + "name": "resolved-dd" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "dd", + "name": "which-dd" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "df", + "toolchain_type": "//coreutils/toolchain/df:type", + "name": "resolved-df" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "df", + "name": "which-df" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "dirname", + "toolchain_type": "//coreutils/toolchain/dirname:type", + "name": "resolved-dirname" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "dirname", + "name": "which-dirname" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "du", + "toolchain_type": "//coreutils/toolchain/du:type", + "name": "resolved-du" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "du", + "name": "which-du" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "echo", + "toolchain_type": "//coreutils/toolchain/echo:type", + "name": "resolved-echo" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "echo", + "name": "which-echo" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "env", + "toolchain_type": "//coreutils/toolchain/env:type", + "name": "resolved-env" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "env", + "name": "which-env" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "expand", + "toolchain_type": "//coreutils/toolchain/expand:type", + "name": "resolved-expand" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "expand", + "name": "which-expand" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "expr", + "toolchain_type": "//coreutils/toolchain/expr:type", + "name": "resolved-expr" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "expr", + "name": "which-expr" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "factor", + "toolchain_type": "//coreutils/toolchain/factor:type", + "name": "resolved-factor" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "factor", + "name": "which-factor" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "false", + "toolchain_type": "//coreutils/toolchain/false:type", + "name": "resolved-false" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "false", + "name": "which-false" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "fold", + "toolchain_type": "//coreutils/toolchain/fold:type", + "name": "resolved-fold" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "fold", + "name": "which-fold" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "head", + "toolchain_type": "//coreutils/toolchain/head:type", + "name": "resolved-head" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "head", + "name": "which-head" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "hostname", + "toolchain_type": "//coreutils/toolchain/hostname:type", + "name": "resolved-hostname" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "hostname", + "name": "which-hostname" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "install", + "toolchain_type": "//coreutils/toolchain/install:type", + "name": "resolved-install" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "install", + "name": "which-install" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "link", + "toolchain_type": "//coreutils/toolchain/link:type", + "name": "resolved-link" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "link", + "name": "which-link" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "ln", + "toolchain_type": "//coreutils/toolchain/ln:type", + "name": "resolved-ln" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "ln", + "name": "which-ln" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "ls", + "toolchain_type": "//coreutils/toolchain/ls:type", + "name": "resolved-ls" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "ls", + "name": "which-ls" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "md5sum", + "toolchain_type": "//coreutils/toolchain/md5sum:type", + "name": "resolved-md5sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "md5sum", + "name": "which-md5sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "mkdir", + "toolchain_type": "//coreutils/toolchain/mkdir:type", + "name": "resolved-mkdir" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "mkdir", + "name": "which-mkdir" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "mktemp", + "toolchain_type": "//coreutils/toolchain/mktemp:type", + "name": "resolved-mktemp" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "mktemp", + "name": "which-mktemp" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "more", + "toolchain_type": "//coreutils/toolchain/more:type", + "name": "resolved-more" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "more", + "name": "which-more" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "mv", + "toolchain_type": "//coreutils/toolchain/mv:type", + "name": "resolved-mv" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "mv", + "name": "which-mv" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "nl", + "toolchain_type": "//coreutils/toolchain/nl:type", + "name": "resolved-nl" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "nl", + "name": "which-nl" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "nproc", + "toolchain_type": "//coreutils/toolchain/nproc:type", + "name": "resolved-nproc" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "nproc", + "name": "which-nproc" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "od", + "toolchain_type": "//coreutils/toolchain/od:type", + "name": "resolved-od" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "od", + "name": "which-od" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "paste", + "toolchain_type": "//coreutils/toolchain/paste:type", + "name": "resolved-paste" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "paste", + "name": "which-paste" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "printf", + "toolchain_type": "//coreutils/toolchain/printf:type", + "name": "resolved-printf" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "printf", + "name": "which-printf" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "pwd", + "toolchain_type": "//coreutils/toolchain/pwd:type", + "name": "resolved-pwd" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "pwd", + "name": "which-pwd" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "readlink", + "toolchain_type": "//coreutils/toolchain/readlink:type", + "name": "resolved-readlink" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "readlink", + "name": "which-readlink" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "realpath", + "toolchain_type": "//coreutils/toolchain/realpath:type", + "name": "resolved-realpath" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "realpath", + "name": "which-realpath" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "rm", + "toolchain_type": "//coreutils/toolchain/rm:type", + "name": "resolved-rm" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "rm", + "name": "which-rm" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "rmdir", + "toolchain_type": "//coreutils/toolchain/rmdir:type", + "name": "resolved-rmdir" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "rmdir", + "name": "which-rmdir" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "seq", + "toolchain_type": "//coreutils/toolchain/seq:type", + "name": "resolved-seq" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "seq", + "name": "which-seq" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sha1sum", + "toolchain_type": "//coreutils/toolchain/sha1sum:type", + "name": "resolved-sha1sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sha1sum", + "name": "which-sha1sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sha256sum", + "toolchain_type": "//coreutils/toolchain/sha256sum:type", + "name": "resolved-sha256sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sha256sum", + "name": "which-sha256sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sha3sum", + "toolchain_type": "//coreutils/toolchain/sha3sum:type", + "name": "resolved-sha3sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sha3sum", + "name": "which-sha3sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sha512sum", + "toolchain_type": "//coreutils/toolchain/sha512sum:type", + "name": "resolved-sha512sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sha512sum", + "name": "which-sha512sum" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "shred", + "toolchain_type": "//coreutils/toolchain/shred:type", + "name": "resolved-shred" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "shred", + "name": "which-shred" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "shuf", + "toolchain_type": "//coreutils/toolchain/shuf:type", + "name": "resolved-shuf" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "shuf", + "name": "which-shuf" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sleep", + "toolchain_type": "//coreutils/toolchain/sleep:type", + "name": "resolved-sleep" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sleep", + "name": "which-sleep" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sort", + "toolchain_type": "//coreutils/toolchain/sort:type", + "name": "resolved-sort" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sort", + "name": "which-sort" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "sync", + "toolchain_type": "//coreutils/toolchain/sync:type", + "name": "resolved-sync" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "sync", + "name": "which-sync" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "tac", + "toolchain_type": "//coreutils/toolchain/tac:type", + "name": "resolved-tac" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "tac", + "name": "which-tac" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "tail", + "toolchain_type": "//coreutils/toolchain/tail:type", + "name": "resolved-tail" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "tail", + "name": "which-tail" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "tee", + "toolchain_type": "//coreutils/toolchain/tee:type", + "name": "resolved-tee" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "tee", + "name": "which-tee" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "test", + "toolchain_type": "//coreutils/toolchain/test:type", + "name": "resolved-test" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "test", + "name": "which-test" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "touch", + "toolchain_type": "//coreutils/toolchain/touch:type", + "name": "resolved-touch" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "touch", + "name": "which-touch" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "tr", + "toolchain_type": "//coreutils/toolchain/tr:type", + "name": "resolved-tr" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "tr", + "name": "which-tr" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "true", + "toolchain_type": "//coreutils/toolchain/true:type", + "name": "resolved-true" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "true", + "name": "which-true" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "truncate", + "toolchain_type": "//coreutils/toolchain/truncate:type", + "name": "resolved-truncate" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "truncate", + "name": "which-truncate" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "uname", + "toolchain_type": "//coreutils/toolchain/uname:type", + "name": "resolved-uname" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "uname", + "name": "which-uname" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "unexpand", + "toolchain_type": "//coreutils/toolchain/unexpand:type", + "name": "resolved-unexpand" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "unexpand", + "name": "which-unexpand" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "uniq", + "toolchain_type": "//coreutils/toolchain/uniq:type", + "name": "resolved-uniq" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "uniq", + "name": "which-uniq" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "unlink", + "toolchain_type": "//coreutils/toolchain/unlink:type", + "name": "resolved-unlink" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "unlink", + "name": "which-unlink" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "wc", + "toolchain_type": "//coreutils/toolchain/wc:type", + "name": "resolved-wc" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "wc", + "name": "which-wc" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "whoami", + "toolchain_type": "//coreutils/toolchain/whoami:type", + "name": "resolved-whoami" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "whoami", + "name": "which-whoami" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "basename": "yes", + "toolchain_type": "//coreutils/toolchain/yes:type", + "name": "resolved-yes" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 81, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/local/which:defs.bzl%toolchain_local_which", + "attributeValues": { + "basename": "yes", + "name": "which-yes" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 86, + "column": 14 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + }, + { + "extensionBzlFile": "@toolchain_utils//toolchain/export:defs.bzl", + "extensionName": "toolchain_export", + "usingModule": "rules_coreutils@1.0.0-alpha.8", + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 51, + "column": 23 + }, + "imports": {}, + "devImports": [], + "tags": [ + { + "tagName": "symlink", + "attributeValues": { + "name": "coreutils", + "target": "@coreutils" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-alpha.8/MODULE.bazel", + "line": 52, + "column": 15 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], + "deps": { + "toolchain_utils": "toolchain_utils@1.0.0-beta.3", + "download_utils": "download_utils@1.0.0-beta.1", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_coreutils~1.0.0-alpha.8", + "urls": [ + "https://gitlab.arm.com/bazel/rules_coreutils/-/releases/v1.0.0-alpha.8/downloads/src.tar.gz" + ], + "integrity": "sha512-uXUHM6aqwAHX3BAl3oxtjVFGz3kqr8NqmGMYgzjERCIeD3AHSa8HOviWmoPqenzysvrqx4bUoHWNRAyG9i5Y3Q==", + "strip_prefix": "rules_coreutils-v1.0.0-alpha.8", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, + "rules_diff@1.0.0-alpha.3": { + "name": "rules_diff", + "version": "1.0.0-alpha.3", + "key": "rules_diff@1.0.0-alpha.3", + "repoName": "rules_diff", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [ + "//diff/toolchain/..." + ], + "extensionUsages": [ + { + "extensionBzlFile": "@toolchain_utils//toolchain/export:defs.bzl", + "extensionName": "toolchain_export", + "usingModule": "rules_diff@1.0.0-alpha.3", + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 13, + "column": 23 + }, + "imports": { + "ape-diff": "ape-diff", + "diff": "diff", + "ape-diff3": "ape-diff3", + "diff3": "diff3", + "ape-sdiff": "ape-sdiff", + "sdiff": "sdiff", + "ape-cmp": "ape-cmp", + "cmp": "cmp" + }, + "devImports": [], + "tags": [ + { + "tagName": "symlink", + "attributeValues": { + "name": "diff", + "target": "@ape-diff" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 20, + "column": 23 + } + }, + { + "tagName": "symlink", + "attributeValues": { + "name": "diff3", + "target": "@ape-diff3" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 20, + "column": 23 + } + }, + { + "tagName": "symlink", + "attributeValues": { + "name": "sdiff", + "target": "@ape-sdiff" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 20, + "column": 23 + } + }, + { + "tagName": "symlink", + "attributeValues": { + "name": "cmp", + "target": "@ape-cmp" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 20, + "column": 23 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + }, + { + "extensionBzlFile": "//:MODULE.bazel", + "extensionName": "_repo_rules", + "usingModule": "rules_diff@1.0.0-alpha.3", + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 0, + "column": 0 + }, + "imports": { + "resolved-diff": "resolved-diff", + "resolved-diff3": "resolved-diff3", + "resolved-sdiff": "resolved-sdiff", + "resolved-cmp": "resolved-cmp" + }, + "devImports": [], + "tags": [ + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "toolchain_type": "//diff/toolchain/diff:type", + "name": "resolved-diff" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 25, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "toolchain_type": "//diff/toolchain/diff3:type", + "name": "resolved-diff3" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 25, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "toolchain_type": "//diff/toolchain/sdiff:type", + "name": "resolved-sdiff" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 25, + "column": 17 + } + }, + { + "tagName": "@toolchain_utils//toolchain/resolved:defs.bzl%toolchain_resolved", + "attributeValues": { + "toolchain_type": "//diff/toolchain/cmp:type", + "name": "resolved-cmp" + }, + "devDependency": false, + "location": { + "file": "https://bcr.bazel.build/modules/rules_diff/1.0.0-alpha.3/MODULE.bazel", + "line": 25, + "column": 17 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + } + ], + "deps": { + "toolchain_utils": "toolchain_utils@1.0.0-beta.3", + "ape": "ape@1.0.0-alpha.5", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "rules_diff~1.0.0-alpha.3", + "urls": [ + "https://gitlab.arm.com/bazel/rules_diff/-/releases/v1.0.0-alpha.3/downloads/src.tar.gz" + ], + "integrity": "sha512-g8eVWXWcRpkiWjxs54Zua9tjdX/mTZV2yWslBrFqftvHDaCLxJQ1uXb4fRqC3pM1XKFouelMkviYZSMJaVAT8w==", + "strip_prefix": "rules_diff-v1.0.0-alpha.3", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, "rules_bzip2@_": { "name": "rules_bzip2", "version": "0.0.0", @@ -47,7 +2463,7 @@ "usingModule": "rules_bzip2@_", "location": { "file": "@@rules_bzip2~override//:MODULE.bazel", - "line": 12, + "line": 13, "column": 23 }, "imports": { @@ -65,7 +2481,7 @@ "devDependency": false, "location": { "file": "@@rules_bzip2~override//:MODULE.bazel", - "line": 14, + "line": 15, "column": 15 } } @@ -96,7 +2512,7 @@ "devDependency": false, "location": { "file": "@@rules_bzip2~override//:MODULE.bazel", - "line": 22, + "line": 23, "column": 9 } } @@ -106,6 +2522,7 @@ } ], "deps": { + "rules_coreutils": "rules_coreutils@1.0.0-alpha.8", "toolchain_utils": "toolchain_utils@1.0.0-beta.3", "ape": "ape@1.0.0-alpha.5", "bazel_tools": "bazel_tools@_", @@ -332,6 +2749,33 @@ } } }, + "download_utils@1.0.0-beta.1": { + "name": "download_utils", + "version": "1.0.0-beta.1", + "key": "download_utils@1.0.0-beta.1", + "repoName": "download_utils", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [], + "extensionUsages": [], + "deps": { + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "name": "download_utils~1.0.0-beta.1", + "urls": [ + "https://gitlab.arm.com/bazel/download_utils/-/releases/v1.0.0-beta.1/downloads/src.tar.gz" + ], + "integrity": "sha512-MGz3+3iDOc8wod5Qhc1uiQTM34QS64cVlSR4RSzCFV6yCRkrWZR555IuxHzOsvpths80rYe42C2JdwmXtKSFnw==", + "strip_prefix": "download_utils-v1.0.0-beta.1", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, "ape@1.0.0-alpha.5": { "name": "ape", "version": "1.0.0-alpha.5", @@ -8108,33 +10552,6 @@ "remote_patch_strip": 0 } } - }, - "download_utils@1.0.0-beta.1": { - "name": "download_utils", - "version": "1.0.0-beta.1", - "key": "download_utils@1.0.0-beta.1", - "repoName": "download_utils", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "name": "download_utils~1.0.0-beta.1", - "urls": [ - "https://gitlab.arm.com/bazel/download_utils/-/releases/v1.0.0-beta.1/downloads/src.tar.gz" - ], - "integrity": "sha512-MGz3+3iDOc8wod5Qhc1uiQTM34QS64cVlSR4RSzCFV6yCRkrWZR555IuxHzOsvpths80rYe42C2JdwmXtKSFnw==", - "strip_prefix": "download_utils-v1.0.0-beta.1", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } } }, "moduleExtensions": { @@ -12492,6 +14909,14 @@ "target": "@@ape~1.0.0-alpha.5~_repo_rules~seq//:seq" } }, + "diff": { + "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", + "ruleClassName": "symlink", + "attributes": { + "name": "toolchain_utils~1.0.0-beta.3~toolchain_export~diff", + "target": "@@toolchain_utils~1.0.0-beta.3~toolchain_export~ape-diff//:ape-diff" + } + }, "ape-printenv": { "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", "ruleClassName": "symlink", @@ -12692,6 +15117,14 @@ "target": "@@ape~1.0.0-alpha.5~_repo_rules~qjs//:qjs" } }, + "cmp": { + "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", + "ruleClassName": "symlink", + "attributes": { + "name": "toolchain_utils~1.0.0-beta.3~toolchain_export~cmp", + "target": "@@toolchain_utils~1.0.0-beta.3~toolchain_export~ape-cmp//:ape-cmp" + } + }, "ape-df": { "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", "ruleClassName": "symlink", @@ -12908,6 +15341,22 @@ "target": "@@ape~1.0.0-alpha.5~_repo_rules~nohup//:nohup" } }, + "sdiff": { + "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", + "ruleClassName": "symlink", + "attributes": { + "name": "toolchain_utils~1.0.0-beta.3~toolchain_export~sdiff", + "target": "@@toolchain_utils~1.0.0-beta.3~toolchain_export~ape-sdiff//:ape-sdiff" + } + }, + "diff3": { + "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", + "ruleClassName": "symlink", + "attributes": { + "name": "toolchain_utils~1.0.0-beta.3~toolchain_export~diff3", + "target": "@@toolchain_utils~1.0.0-beta.3~toolchain_export~ape-diff3//:ape-diff3" + } + }, "ape-basename": { "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", "ruleClassName": "symlink", @@ -13244,6 +15693,14 @@ "target": "@@ape~1.0.0-alpha.5~_repo_rules~uniq//:uniq" } }, + "coreutils": { + "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", + "ruleClassName": "symlink", + "attributes": { + "name": "toolchain_utils~1.0.0-beta.3~toolchain_export~coreutils", + "target": "@@rules_coreutils~1.0.0-alpha.8~_repo_rules~coreutils//:coreutils" + } + }, "ape-readlink": { "bzlFile": "@@toolchain_utils~1.0.0-beta.3//toolchain/export/symlink:repository.bzl", "ruleClassName": "symlink", diff --git a/e2e/bzip2/BUILD.bazel b/e2e/bzip2/BUILD.bazel new file mode 100644 index 0000000..07f500f --- /dev/null +++ b/e2e/bzip2/BUILD.bazel @@ -0,0 +1,20 @@ +load("@rules_bzip2//bzip2/compress:defs.bzl", "bzip2_compress") +load("@rules_bzip2//bzip2/decompress:defs.bzl", "bzip2_decompress") +load("@rules_diff//diff/file/test:defs.bzl", "diff_file_test") + +bzip2_compress( + name = "compress", + src = "//fixture:hello-world.txt", +) + +bzip2_decompress( + name = "decompress", + src = ":compress", +) + +diff_file_test( + name = "bzip2", + size = "small", + a = "//fixture:hello-world.txt", + b = ":decompress", +) diff --git a/e2e/fixture/BUILD.bazel b/e2e/fixture/BUILD.bazel new file mode 100644 index 0000000..29bacc5 --- /dev/null +++ b/e2e/fixture/BUILD.bazel @@ -0,0 +1,6 @@ +exports_files( + [ + "hello-world.txt", + ], + visibility = ["//:__subpackages__"], +) diff --git a/e2e/fixture/hello-world.txt b/e2e/fixture/hello-world.txt new file mode 100644 index 0000000..af5626b --- /dev/null +++ b/e2e/fixture/hello-world.txt @@ -0,0 +1 @@ +Hello, world! -- GitLab