Скопируйте каталог в новый каталог в Bazel
По сути, все, что я хочу, это
cp -r src/ dist/
, но по какой-то причине я просто не могу заставить это работать.
В настоящее время я пытаюсь:
filegroup(
name = "src_files",
srcs = glob([
"src/**",
]),
)
filegroup(
name = "dist_files",
srcs = glob([
"dist/**"
]),
)
genrule(
name = "copy",
srcs = ["//packages/variables:src_files"],
outs = ["//packages/variables:dist_files"],
cmd = "cp -R $(locations //packages/variables:src_files) $(locations //packages/variables:dist_files)"
)
Я просмотрел как минимум 4 страницы Google и документации, но кажется, если я не создам правило и не укажу вручную все 100 файлов в правиле, это не сработает?
1 ответ
@JamesSharpe получил то, чего мне не хватало, обновил файл BUILD до:
filegroup(
name = "src_files",
srcs = glob([
"src/**",
]),
)
pkg_tar(
name = "pack_srcs",
extension = "tar.gz",
srcs = [":src_files"],
)
genrule(
name = "unpack_to_dist",
srcs = [":pack_srcs"],
outs = ["dist"],
cmd = "mkdir $(RULEDIR)/dist && tar -C $(RULEDIR)/dist -zxvf $(SRCS)"
)
И смог успешно передать это нижестоящему правилу.