Skip to main content
Version: 1.4.x

copy_directory

A rule that copies a directory to another place.

The rule uses a Bash command on Linux/macOS/non-Windows, and a cmd.exe command on Windows (no Bash is required).

Macros and Functions

copy_directory

Copies a directory to another location.

This rule uses a Bash command on Linux/macOS/non-Windows, and a cmd.exe command on Windows (no Bash is required).

If using this rule with source directories, it is recommended that you use the --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 startup option so that changes to files within source directories are detected. See https://github.com/bazelbuild/bazel/commit/c64421bc35214f0414e4f4226cc953e8c55fa0d2 for more context.

Example usage (generated):

load("@bazel_skylib//rules:copy_directory.bzl", "copy_directory")

copy_directory(
# Name of the rule.
name = "",
# The directory to make a copy of
src = "",
# Path of the output directory, relative to this package.
out = "",
)

name

Required.

Name of the rule.

src

Required.

The directory to make a copy of. Can be a source directory or TreeArtifact.

out

Required.

Path of the output directory, relative to this package.

kwargs

Optional.

further keyword arguments, e.g. visibility

copy_directory_action

Helper function that creates an action to copy a directory from src to dst.

This helper is used by copy_directory. It is exposed as a public API so it can be used within other rule implementations.

Example usage (generated):

load("@bazel_skylib//rules:copy_directory.bzl", "copy_directory_action")

copy_directory_action(
# The rule context.
ctx = None,
# The directory to make a copy of
src = "",
# The directory to copy to
dst = None,
)

ctx

Required.

The rule context.

src

Required.

The directory to make a copy of. Can be a source directory or TreeArtifact.

dst

Required.

The directory to copy to. Must be a TreeArtifact.

is_windows

Optional. Default: False

If true, an cmd.exe action is created so there is no bash dependency.