Skip to content

Commit

Permalink
refactor: use vars for _external_ toolchains
Browse files Browse the repository at this point in the history
  • Loading branch information
mgred committed Jul 26, 2024
1 parent abd5045 commit d20f672
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 16 deletions.
2 changes: 2 additions & 0 deletions lib/private/toolchains/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ bzl_library(
deps = [
"//lib/private:helpers",
"//toolchains",
"//toolchains:external",
"@aspect_bazel_lib//lib:write_source_files",
],
)
Expand All @@ -27,6 +28,7 @@ bzl_library(
":assets_bundle",
"//lib/private:helpers",
"//toolchains",
"//toolchains:external",
"@aspect_bazel_lib//lib:write_source_files",
],
)
Expand Down
8 changes: 4 additions & 4 deletions lib/private/toolchains/asset.template.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "_name_",
"platform": "_platform_",
"url": "_url_",
"binary": "_binary_",
"name": "%NAME%",
"platform": "%PLATFORM%",
"url": "%URL%",
"binary": "%BINARY%",
"integrity": null,
"files": []
}
13 changes: 7 additions & 6 deletions lib/private/toolchains/assets.bzl
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"Platform Asset"

load("//lib/private/utils:sha.bzl", "sha")
load("//toolchains:external.bzl", "JQ_TOOLCHAIN_TYPE")
load(
"//toolchains:toolchains.bzl",
"SHA_TOOLCHAIN_TYPE",
Expand All @@ -24,7 +25,7 @@ def _switch(val, arms, default = None):
def _platform_asset_impl(ctx):
source = ctx.actions.declare_file("%s_/%s_info.json" % (ctx.label.name, ctx.label.name))
merger = ctx.actions.declare_file("%s_/%s_merger.sh" % (ctx.label.name, ctx.label.name))
jq = ctx.toolchains["@aspect_bazel_lib//lib:jq_toolchain_type"].jqinfo.bin
jq = ctx.toolchains[JQ_TOOLCHAIN_TYPE].jqinfo.bin
out = ctx.actions.declare_file("%s.json" % ctx.label.name)
json_template = ctx.file._json_template
if ctx.attr.url:
Expand All @@ -35,10 +36,10 @@ def _platform_asset_impl(ctx):
output = source,
template = json_template,
substitutions = {
"_name_": ctx.label.name,
"_platform_": ctx.attr.platform,
"_url_": url,
"_binary_": ctx.attr.binary,
"%NAME%": ctx.label.name,
"%PLATFORM%": ctx.attr.platform,
"%URL%": url,
"%BINARY%": ctx.attr.binary,
"[]": json.encode(ctx.attr.files),
},
is_executable = False,
Expand Down Expand Up @@ -92,8 +93,8 @@ platform_asset = rule(
_platform_asset_impl,
attrs = _ATTRS,
toolchains = [
JQ_TOOLCHAIN_TYPE,
SHA_TOOLCHAIN_TYPE,
"@aspect_bazel_lib//lib:jq_toolchain_type",
],
)

Expand Down
9 changes: 5 additions & 4 deletions lib/private/toolchains/assets_bundle.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ load(
"get_binary_from_toolchain",
"write_executable_launcher_file",
)
load("//toolchains:external.bzl", "BUILDIFIER_TOOLCHAIN_TYPE", "JQ_TOOLCHAIN_TYPE")
load("//toolchains:toolchains.bzl", "TEMPL_TOOLCHAIN_TYPE")

def _assets_bundle_impl(ctx):
out = ctx.outputs.out
jq = ctx.toolchains["@aspect_bazel_lib//lib:jq_toolchain_type"].jqinfo.bin
buildifier = ctx.toolchains["@buildifier_prebuilt//buildifier:toolchain"]._tool
jq = ctx.toolchains[JQ_TOOLCHAIN_TYPE].jqinfo.bin
buildifier = ctx.toolchains[BUILDIFIER_TOOLCHAIN_TYPE]._tool
templ = get_binary_from_toolchain(ctx, TEMPL_TOOLCHAIN_TYPE)
script = write_executable_launcher_file(
ctx,
Expand Down Expand Up @@ -56,9 +57,9 @@ _assets_bundle = rule(
"out": attr.output(mandatory = True),
},
toolchains = [
BUILDIFIER_TOOLCHAIN_TYPE,
JQ_TOOLCHAIN_TYPE,
TEMPL_TOOLCHAIN_TYPE,
"@aspect_bazel_lib//lib:jq_toolchain_type",
"@buildifier_prebuilt//buildifier:toolchain",
],
)

Expand Down
1 change: 1 addition & 0 deletions lib/private/utils/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ bzl_library(
deps = [
"//lib/private:helpers",
"//toolchains",
"//toolchains:external",
],
)

Expand Down
5 changes: 3 additions & 2 deletions lib/private/utils/formatter.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ load(
"get_binary_from_toolchain",
"get_target_file",
)
load("//toolchains:external.bzl", "JQ_TOOLCHAIN_TYPE")
load(
"//toolchains:toolchains.bzl",
"FD_TOOLCHAIN_TYPE",
Expand All @@ -18,7 +19,7 @@ def _join_exclude_args(items):
def _parallel_run_impl(ctx):
fd = get_binary_from_toolchain(ctx, FD_TOOLCHAIN_TYPE)
goawk = get_binary_from_toolchain(ctx, GOAWK_TOOLCHAIN_TYPE)
jq = ctx.toolchains["@aspect_bazel_lib//lib:jq_toolchain_type"].jqinfo.bin
jq = ctx.toolchains[JQ_TOOLCHAIN_TYPE].jqinfo.bin
launcher = declare_launcher_file(ctx)
args_file = ctx.actions.declare_file("{}_/{}_args".format(ctx.label.name, ctx.label.name))

Expand Down Expand Up @@ -95,7 +96,7 @@ _ATTRS = {
_TOOLCHAINS = [
FD_TOOLCHAIN_TYPE,
GOAWK_TOOLCHAIN_TYPE,
"@aspect_bazel_lib//lib:jq_toolchain_type",
JQ_TOOLCHAIN_TYPE,
]

formatter = rule(
Expand Down
5 changes: 5 additions & 0 deletions toolchains/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ create_bzl_file(
tools = TOOLS,
)

bzl_library(
name = "external",
srcs = ["external.bzl"],
)

bzl_library(
name = "toolchains",
srcs = ["toolchains.bzl"],
Expand Down
8 changes: 8 additions & 0 deletions toolchains/external.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""
External Toolchains
Targets to _external_ toolchains types.
"""

BUILDIFIER_TOOLCHAIN_TYPE = "@buildifier_prebuilt//buildifier:toolchain"
JQ_TOOLCHAIN_TYPE = "@aspect_bazel_lib//lib:jq_toolchain_type"

0 comments on commit d20f672

Please sign in to comment.