Можно ли вызвать Git или другие инструменты командной строки изнутри скрипта Thor? - PullRequest
5 голосов
/ 26 января 2011

Я обнаружил, что часто выполняю последовательность рутинных задач по очистке до и после выполнения git commit для моего приложения на Rails 3.

Я думал о том, чтобы поместить эти вещи в скрипт Thor, но я не смог понять, как использовать Thor (или Rake) для вызова других инструментов системы.

Можно ли вызвать команду типа git log из скрипта Thor или Rake, и если да, то как это выглядит?

Спасибо!

Ответы [ 2 ]

12 голосов
/ 26 января 2011

Просто выложить:

result = %x(git log)
puts result

или

system('git log')

, если вы просто хотите передать вывод на терминал.

Существует также grit гем, который абстрагирует инструменты Git в библиотеку Ruby:

require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
  puts "#{commit.id}: #{commit.message}"
end
4 голосов
/ 26 января 2011

Не забывайте, что это просто файлы Ruby, так что вы можете использовать там все, что есть в арсенале Ruby, например,% x [rm -rf /], system ("rm -rf / ") и` rm -rf / `также доступны в этих скриптах.

...