检查目录是否存在很容易,例如:
only_if { Dir.exist?(archive_root) }
我想要完成的是only_if同时进行2次检查。
因此,如果我们看一下通用执行,它应该是这样的:
execute "RunThisAction" do
command "ls -al /data/ > /tmp/foo.log"
action :nothing
only_if { Dir.exist?("/data") && !Dir.empty?("/data") }
notifies :run, "execute[ASecondAction]", :immediately
end
所以问题是...... Dir.empty是正确的做事方式吗?其次,如果操作被触发但未满足only_if条件,它仍然会通知吗?
我可以直接在Ruby中进行测试,但这会使操作在编译时运行,而不是执行时间。例如,如果我在编译时对Dir.exist进行测试,它可能还不存在,如果先前没有运行先前的操作,则该目录几乎总是为空。
感谢。