开发者

Is it possible to call Git or other command line tools from inside a Thor script?

开发者 https://www.devze.com 2023-02-06 14:46 出处:网络
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 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.

0

精彩评论

暂无评论...
验证码 换一张
取 消