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

And*_*rew 5 ruby git rake ruby-on-rails thor

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

我正在考虑将这些东西放入Thor脚本,但有一点我无法弄清楚是如何使用Thor(或Rake)来调用系统上的其他工具.

是否可以git log通过Thor或Rake脚本调用命令,如果是这样,那是什么样的?

谢谢!

The*_*heo 12

掏出来:

result = %x(git log)
puts result
Run Code Online (Sandbox Code Playgroud)

要么

system('git log')
Run Code Online (Sandbox Code Playgroud)

如果你只想将输出传递给终端.

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

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