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