"""'Presets' for bazelrc

See https://docs.aspect.build/guides/bazelrc
"""

load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files")

ALL_PRESETS = [
    "bazel6",
    "bazel7",
    "ci",
    "convenience",
    "correctness",
    "debug",
    "javascript",
    "performance",
]

def write_aspect_bazelrc_presets(
        name,
        presets = ALL_PRESETS,
        **kwargs):
    """Keeps your vendored copy of Aspect recommended `.bazelrc` presets up-to-date.

    This macro uses a [write_source_files](https://docs.aspect.build/rules/aspect_bazel_lib/docs/write_source_files)
    rule under the hood to keep your presets up-to-date.

    By default all presets are vendored but this list can be customized using
    the `presets` attribute.

    Args:
        name: a unique name for this target
        presets: a list of preset names to keep up-to-date
        **kwargs: Additional arguments to pass to `write_source_files`
    """

    files = {}
    for p in presets:
        files["{}.bazelrc".format(p)] = "@aspect_bazel_lib//.aspect/bazelrc:{}.bazelrc".format(p)

    write_source_files(
        name = name,
        files = files,
        **kwargs
    )
