我发现我经常在为我的 Rails 3 应用程序进行 git 提交之前和之后运行一系列例行的“清理”任务。
我正在考虑将这些东西放入 Thor 脚本中,但我无法弄清楚的一件事是如何使用 Thor(或 Rake)来调用系统上的其他工具。
是否可以git log
从 Thor 或 Rake 脚本中调用命令,如果可以,那是什么样的?
谢谢!
我发现我经常在为我的 Rails 3 应用程序进行 git 提交之前和之后运行一系列例行的“清理”任务。
我正在考虑将这些东西放入 Thor 脚本中,但我无法弄清楚的一件事是如何使用 Thor(或 Rake)来调用系统上的其他工具。
是否可以git log
从 Thor 或 Rake 脚本中调用命令,如果可以,那是什么样的?
谢谢!
只是掏空:
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
不要忘记这些只是 Ruby 文件,因此您也可以使用 Ruby 库中的所有内容,例如 %x[rm -rf /]、system ("rm -rf /") 和 `rm -rf /` 也可以在这些脚本中访问。