bazel-lib/lib/expand_template.bzl

32 lines
970 B
Python

"Public API for expand template"
load("@bazel_skylib//lib:types.bzl", "types")
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("//lib/private:expand_template.bzl", _expand_template = "expand_template")
expand_template_rule = _expand_template
def expand_template(name, template, **kwargs):
"""Wrapper macro for `expand_template_rule`.
Args:
name: name of resulting rule
template: the label of a template file, or a list of strings
which are lines representing the content of the template.
**kwargs: other named parameters to `expand_template_rule`.
"""
if types.is_list(template):
write_target = "_{}.tmpl".format(name)
write_file(
name = write_target,
out = "{}.txt".format(write_target),
content = template,
)
template = write_target
_expand_template(
name = name,
template = template,
**kwargs
)