ruby – 文件不存在时Rake clean raise错误
发布时间:2020-12-17 02:42:50 所属栏目:百科 来源:网络整理
导读:我有一个像这样的Rakefile task :clean do sh 'rm ./foo'end 我想阻止它在文件’foo’不存在时报告错误.怎么做? 我想我想要的是:有没有办法首先检查文件,然后决定下一步做什么. 例如: file 'aaa' = 'bbb' do sh 'cp bbb aaa'end 这个任务取决于文件’bbb
我有一个像这样的Rakefile
task :clean do sh 'rm ./foo' end 我想阻止它在文件’foo’不存在时报告错误.怎么做? 我想我想要的是:有没有办法首先检查文件,然后决定下一步做什么. 例如: file 'aaa' => 'bbb' do sh 'cp bbb aaa' end 这个任务取决于文件’bbb’的存在,所以我想知道我可以告诉Rake我的任务取决于文件’foo’不存在吗? 解决方法
你可以通过扩展rake来做到这一点:
Rake文件: require File.join(File.dirname(__FILE__),'unfile_rake_ext') unfile 'target.txt' do File.delete('target.txt') end unfile_rake_ext.rb: class UnFileTask < Rake::FileTask def needed? File.exist?(name) end end def unfile(*args,&block) UnFileTask.define_task(*args,&block) end 我的控制台输出: D:ProjectsZPersonaltmp>ls Rakefile unfile_rake_ext.rb D:ProjectsZPersonaltmp>touch target.txt && ls Rakefile target.txt unfile_rake_ext.rb D:ProjectsZPersonaltmp>rake target.txt --trace ** Invoke target.txt (first_time) ** Execute target.txt D:ProjectsZPersonaltmp>ls Rakefile unfile_rake_ext.rb D:ProjectsZPersonaltmp>rake target.txt --trace ** Invoke target.txt (first_time,not_needed) D:ProjectsZPersonaltmp>ls Rakefile unfile_rake_ext.rb 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |