blob: 846a1197c57c5dcc048e74696d0a866c9f5d1387 [file] [log] [blame]
"""This module contains providers for working with TreeArtifacts.
See https://github.com/bazelbuild/bazel-skylib/issues/300
(this feature could be upstreamed to bazel-skylib in the future)
These are also called output directories, created by `ctx.actions.declare_directory`.
"""
load("//nodejs/private/providers:directory_file_path_info.bzl", "DirectoryFilePathInfo")
def _directory_file_path(ctx):
if not ctx.file.directory.is_directory:
fail("directory attribute must be created with ctx.declare_directory (TreeArtifact)")
return [DirectoryFilePathInfo(path = ctx.attr.path, directory = ctx.file.directory)]
directory_file_path = rule(
doc = """Provide DirectoryFilePathInfo to reference some file within a directory.
Otherwise there is no way to give a Bazel label for it.""",
implementation = _directory_file_path,
attrs = {
"directory": attr.label(
doc = "a directory",
mandatory = True,
allow_single_file = True,
),
"path": attr.string(
doc = "a path within that directory",
mandatory = True,
),
},
)