cmd_args
type
The cmd_args
type is created by cmd_args()
and is consumed by ctx.actions.run
. The type is a mutable collection of strings and artifact
values. In general, command lines, artifacts, strings, RunInfo
and lists thereof can be added to or used to construct a cmd_args
value. All these methods operate mutably on cmd
and return that value too.
cmd_args.add
def cmd_args.add(*args) -> cmd_args
A list of arguments to be added to the command line, which may including cmd_args
, artifacts, strings, RunInfo
or lists thereof. Note that this operation mutates the input cmd_args
.
cmd_args.copy
def cmd_args.copy() -> cmd_args
Returns a copy of the cmd_args
such that any modifications to the original or the returned value will not impact each other. Note that this is a shallow copy, so any inner cmd_args
can still be modified.
cmd_args.inputs
cmd_args.inputs: command_line_inputs
Collect all the inputs (including hidden) referenced by this command line. The output can be compared for equality and have its len
requested to see whether there are any inputs, but is otherwise mostly opaque.
cmd_args.outputs
cmd_args.outputs: list[output_artifact]
Collect all the outputs (including hidden) referenced by this command line.
cmd_args.relative_to
def cmd_args.relative_to(
directory: artifact | cell_root | project_root,
/,
*,
parent: int = _
) -> cmd_args
Make all artifact paths relative to a given location. Typically used when the command you are running changes directory.
By default, the paths are relative to the artifacts themselves (equivalent to
parent = 0
). Use parent
to make the paths relative to an ancestor directory.
For example parent = 1
would make all paths relative to the containing dirs
of any artifacts in the cmd_args
.
dir = symlinked_dir(...)
script = [
cmd_args(cmd_args(dir, format = "cd {}"),
original_script.relative_to(dir)
]