Rails 3アプリのgitcommitを実行する前後に、一連のルーチンの「クリーンアップ」タスクを実行していることがよくあります。
これらをThorスクリプトに入れることを考えていましたが、Thor(またはRake)を使用してシステム上の他のツールを呼び出す方法がわかりませんでした。
ThorまたはRakeスクリプトからのようなコマンドを呼び出すことは可能git log
ですか?もしそうなら、それはどのように見えますか?
ありがとう!
Rails 3アプリのgitcommitを実行する前後に、一連のルーチンの「クリーンアップ」タスクを実行していることがよくあります。
これらをThorスクリプトに入れることを考えていましたが、Thor(またはRake)を使用してシステム上の他のツールを呼び出す方法がわかりませんでした。
ThorまたはRakeスクリプトからのようなコマンドを呼び出すことは可能git log
ですか?もしそうなら、それはどのように見えますか?
ありがとう!
シェルアウトするだけです:
result = %x(git log)
puts result
また
system('git log')
出力を端末に渡したいだけの場合。
Git ツールを Ruby ライブラリに抽象化するグリットgemもあります。
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 /]、システム("rm -rf /")、`rm -rf などです。 /` はこれらのスクリプトでもアクセスできます。