linux - 使用 bazel 中的 genrule 将多个文件复制到多个文件夹中

标签 linux bash shell bazel cp

我想将一些文件复制到特定目录。

例子:

我有一些这样结构的文件

/scripts
    build.js
    test.js
    start.js
/config
    env.js
    path.js

如何将 scripts 文件夹下的文件复制到一个名为 scripts 的文件夹中,并将 config 文件夹下的文件复制到另一个名为 config 的文件夹中。

#BUILD.bazel
filegroup(
  name="react-test",
  srcs=glob([
      "scripts/**/*.js", 
      "config/**/*"
  ])
)

#Macro
def copy_gen(name):
  native.genrule(
    name = name,
    srcs = ["//:react-test"],
    outs = ["scripts", "config"],
    cmd = "cp $SRCS @D", # What exactly do I do? Tried all sort
    output_to_bindir = 1,
)

最佳答案

现在我可以解决这个问题。

#BUILD.bazel

filegroup(
  name="react-test",
  srcs=[
      "react-test" #folder to copy
  ]
)
genrule(
    name = "copy",
    srcs = [":react-test"],
    outs = ["react-test"],
    cmd = "cp -r $(SRCS) $(OUTS)"
)

关于linux - 使用 bazel 中的 genrule 将多个文件复制到多个文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53350987/

相关文章:

linux - 删除空行旁边一行的 Shell 脚本

bash - shell脚本随机数生成

c - bash 无法使用 setuid 程序获得 root 权限

linux - 在 windows 和 linux 上都会成功的命令,但会给出不同的结果

c++ - 如何让 OpenCV 在 nix 中工作?

linux - 分析树脂负载测试生成的 .core 文件

linux grep 命令没有返回准确的结果

linux - 如何重定向桌面条目的输出

regex - 使用 SED 替换模式会导致出现额外的字符

bash - 为什么我要做 Cmake .. 并制作?