如何从Rake任务中显示类似Rails的输出?

时间:2012-07-19 18:16:11

标签: ruby-on-rails ruby rake

我有一个rake任务,用于设置一堆符号链接,但前提是它们尚不存在。目前,当您运行任务时,没有输出。所以你不知道是否发生了什么。我如何通过为每个符号链接说“创建”或“跳过”来提供像Rails生成器那样的输出?我需要包含哪些宝石或模块才能获得此类功能?

# example
task :setup do
  if !File.symlink?('/example/link')
    %x{cd /example && ln -s /something link}
  end
end

1 个答案:

答案 0 :(得分:0)

我可能会使用Ruby的FileUtils ln_s功能。

ln_s(old, new, options = {})
  

创建一个指向旧的符号链接new。如果新的已存在   它是一个目录,创建一个新的/旧的符号链接。如果新的已经   存在并且它不是目录,引发Errno :: EEXIST。但如果:强迫   选项已设置,覆盖新。

FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'
FileUtils.ln_s 'verylongsourcefilename.c', 'c', :force => true

...

ln_s(list, destdir, options = {})
  

在目录中创建多个符号链接,每个链接指向一个   到列表中的项目。如果destdir不是目录,则引发   错误号:: ENOTDIR。

     

如果destdir不是目录,则引发Errno :: ENOTDIR。