Is it possible to call Git or other command line tools from inside a Thor script?
I find that I'm often running a sequence of routine 'cleanup' t开发者_运维知识库asks before and after I make a git commit for my Rails 3 app.
I was thinking about putting these things into a Thor script, but one thing I haven't been able to figure out is how to use Thor (or Rake) to call other tools on the system.
Is it possible to call a command like git log
from a Thor or Rake script, and if so what does that look like?
Thanks!
Just shell out:
result = %x(git log)
puts result
or
system('git log')
if you just want to pass the output to the terminal.
There is also the grit gem that abstracts the Git tools into a Ruby library:
require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
puts "#{commit.id}: #{commit.message}"
end
Don't forget that those are just Ruby files, so you can use everything in the Ruby arsenal there as well, so things like %x[rm -rf /], system("rm -rf /") and `rm -rf /` are accessible in those scripts too.
精彩评论