Rule and corresponding provider that joins a label pointing to a TreeArtifact with a path nested within that directory

directory_path

Provide DirectoryPathInfo to reference some path within a directory.

Otherwise there is no way to give a Bazel label for it.

ATTRIBUTES

NameDescriptionTypeMandatoryDefault
nameA unique name for this target.Namerequired
directorya TreeArtifact (ctx.actions.declare_directory)Labelrequired
pathpath relative to the directoryStringrequired

DirectoryPathInfo

Joins a label pointing to a TreeArtifact with a path nested within that directory.

FIELDS

NameDescription
directorya TreeArtifact (ctx.actions.declare_directory)
pathpath relative to the directory

make_directory_path

Helper function to generate a directory_path target and return its label.

PARAMETERS

NameDescriptionDefault Value
nameunique name for the generated directory_path targetnone
directorydirectory attribute passed to generated directory_path targetnone
pathpath attribute passed to generated directory_path targetnone
kwargsparameters to pass to generated output_files targetnone

RETURNS

The label name

make_directory_paths

Helper function to convert a dict of directory to path mappings to directory_path targets and labels.

For example,

make_directory_paths("my_name", {
    "//directory/artifact:target_1": "file/path",
    "//directory/artifact:target_2": ["file/path1", "file/path2"],
})

generates the targets,

directory_path(
    name = "my_name_0",
    directory = "//directory/artifact:target_1",
    path = "file/path"
)

directory_path(
    name = "my_name_1",
    directory = "//directory/artifact:target_2",
    path = "file/path1"
)

directory_path(
    name = "my_name_2",
    directory = "//directory/artifact:target_2",
    path = "file/path2"
)

and the list of targets is returned,

[
    "my_name_0",
    "my_name_1",
    "my_name_2",
]

PARAMETERS

NameDescriptionDefault Value
nameThe target name to use for the generated targets & labels.

The names are generated as zero-indexed name + "_" + i
none
dictThe dictionary of directory keys to path or path list values.none
kwargsadditional parameters to pass to each generated targetnone

RETURNS

The label of the generated directory_path targets named name + "_" + i