| """Helper for defining distribution filegroups.""" | |
| def distribution_filegroup(name, exclude = None): | |
| """Defines a filegroup target for repository distribution. | |
| Args: | |
| name: The name of the filegroup target. | |
| exclude: Optional list of subpackage patterns to exclude from automatic | |
| subpackage discovery. | |
| """ | |
| exclude = exclude or [] | |
| pkg = native.package_name() | |
| prefix = ("//" + pkg + "/") if pkg else "//" | |
| srcs = native.glob(["**"]) | |
| for subpkg in native.subpackages( | |
| include = ["*"], | |
| exclude = exclude, | |
| allow_empty = True, | |
| ): | |
| srcs.append(prefix + subpkg + ":distribution") | |
| native.filegroup( | |
| name = name, | |
| srcs = srcs, | |
| ) |