"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
    )
