ruby 一个rake任务如何在一个目录或它的任何内容改变的时候运行?

zhte4eai  于 2023-06-22  发布在  Ruby
关注(0)|答案(1)|浏览(111)

我有一个rakefile,它的任务是将目录中的内容复制到磁盘上的其他位置。当rakefile执行时,如果这个目录的任何内容自从上次执行rakefile以来发生了变化(或者如果复制从未发生过),我需要运行这个任务。这包括修改日期或文件名的更改。(请注意,更改文件的名称不会更改其修改日期。)
换句话说,我想要一个与依赖于另一个文件的文件任务相同的工作方式。但是,我不希望它涉及单个文件,而是希望该任务生成一个目录结构,并使其依赖项成为另一个目录结构。
实现这一点的最佳方法是什么?我需要一个跨平台的解决方案,因为这个rakefile是在Windows,OS X和Linux上运行。

oymdgrw7

oymdgrw71#

rakedescribed作为
Rake是一个用Ruby实现的类似Make的程序。
make一样,它允许定义依赖关系并仅在需要时运行任务。
也可以看到RubyTapa
它可以归结为:

file 'target' => 'source' do
  sh "your_transform_command"
end

您也可以编写一般规则:

rule '.html' => '.md' do |file|
  sh "pandoc -o #{file.name} #{file.souce}"
end

然后运行以下命令,README.md仅当www.example.com比README.html新时README.md:

rake README.html

相关问题