是否可以从Thor脚本中调用Git或其他命令行工具?

时间:2011-01-26 06:33:02

标签: ruby-on-rails ruby git rake thor

我发现在为Rails 3应用程序进行git提交之前和之后,我经常运行一系列例行的'清理'任务。

我正在考虑将这些内容放入Thor脚本中,但我无法弄清楚的一件事是如何使用Thor(或Rake)来调用系统上的其他工具。

是否可以从Thor或Rake脚本中调用git log之类的命令,如果是这样,那会是什么样的?

谢谢!

2 个答案:

答案 0 :(得分:12)

刚刚结束:

result = %x(git log)
puts result

system('git log')

如果您只想将输出传递给终端。

还有grit gem将Git工具抽象为Ruby库:

require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
  puts "#{commit.id}: #{commit.message}"
end

答案 1 :(得分:4)

不要忘记那些只是Ruby文件,因此你可以在那里使用Ruby库中的所有东西,所以像%x [rm -rf /],system(“rm -rf /” “)和`rm -rf /`也可以在这些脚本中访问。