mirror of
https://github.com/bazel-contrib/bazel-lib
synced 2024-11-30 01:41:21 +00:00
a283a8216d
* feat: add a BSD tar toolchain @thesayyn discovered that it has a feature which should make it a drop-in replacement for pkg_tar including fine-grained file permissions and symlinks: https://man.freebsd.org/cgi/man.cgi?mtree(8) * show example of mtree usage * feat: introduce tar rule * cleanup and get test passing * more cleanup * chore: add support for compress flags * chore: add docs * chore: add docs * feat: implement linux bsdtar toolchain (#566) * chore: improve target naming * WIP: args * feat: generate mtree spec Also allow arbitrary args * refactor: mtree is required * refactor: style nits * fix: support mix of source and generated artifacts * feat: demonstrate strip_prefix * chore: regen docs * fix: make host toolchain a fallback toolchain * fix: include libarchive13.so when installing BSD tar * chore: buildifier * fix: aarch64 cpu constraint * fix(ci): include libarchive13.so when running tar * chore: add libnettle * refactor: inputs mutated less * refactor: remove unneeded substitution arg * refactor: don't advertise unsupported modes * fix: hack enough to make it run on my machine * chore: dynamic libraries included in sh_binary under toolchain * make sh_binary work * refactor: drop arm64 for now * fix toolchain * fix test * chore: improve test naming scheme --------- Co-authored-by: Sahin Yort <thesayyn@gmail.com>
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
"Module extensions for use with bzlmod"
|
|
|
|
load(
|
|
"@aspect_bazel_lib//lib:repositories.bzl",
|
|
"register_copy_directory_toolchains",
|
|
"register_copy_to_directory_toolchains",
|
|
"register_coreutils_toolchains",
|
|
"register_expand_template_toolchains",
|
|
"register_jq_toolchains",
|
|
"register_tar_toolchains",
|
|
"register_yq_toolchains",
|
|
)
|
|
load("//lib/private:host_repo.bzl", "host_repo")
|
|
|
|
def _toolchain_extension(mctx):
|
|
register_copy_directory_toolchains(register = False)
|
|
register_copy_to_directory_toolchains(register = False)
|
|
register_jq_toolchains(register = False)
|
|
register_yq_toolchains(register = False)
|
|
register_coreutils_toolchains(register = False)
|
|
register_tar_toolchains(register = False)
|
|
register_expand_template_toolchains(register = False)
|
|
|
|
create_host_repo = False
|
|
for module in mctx.modules:
|
|
if len(module.tags.host) > 0:
|
|
create_host_repo = True
|
|
|
|
if create_host_repo:
|
|
host_repo(name = "aspect_bazel_lib_host")
|
|
|
|
# TODO: some way for users to control repo name/version of the tools installed
|
|
ext = module_extension(
|
|
implementation = _toolchain_extension,
|
|
tag_classes = {"host": tag_class(attrs = {})},
|
|
)
|