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).

## copy_directory

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

copy_directory(name, src, out, **kwargs)

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.

**PARAMETERS**

| Name  | Description | Default Value |
| :------------- | :------------- | :------------- |
| name |  Name of the rule.   |  none |
| src |  The directory to make a copy of. Can be a source directory or TreeArtifact.   |  none |
| out |  Path of the output directory, relative to this package.   |  none |
| kwargs |  further keyword arguments, e.g. `visibility`   |  none |

## copy_directory_action

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

copy_directory_action(ctx, src, dst, is_windows)

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.

**PARAMETERS**

| Name  | Description | Default Value |
| :------------- | :------------- | :------------- |
| ctx |  The rule context.   |  none |
| src |  The directory to make a copy of. Can be a source directory or TreeArtifact.   |  none |
| dst |  The directory to copy to. Must be a TreeArtifact.   |  none |
| is_windows |  If true, an cmd.exe action is created so there is no bash dependency.   |  `False` |


