5

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

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

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

谢谢!

4

2 回答 2

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
于 2011-01-26T07:47:37.843 回答
4

不要忘记这些只是 Ruby 文件,因此您也可以使用 Ruby 库中的所有内容,例如 %x[rm -rf /]、system ("rm -rf /") 和 `rm -rf /` 也可以在这些脚本中访问。

于 2011-01-26T06:42:57.453 回答