2017-08-18 3 views
4

私はrakeコマンドを実行するためにCapistranoタスクを作成しました。出力(STDOUT)をファイルにリダイレクトする予定です。例えば。Capistrano 3:どのようにステータス出力を抑制できますか?

cap production invoke:rake TASK=mytask > out

これは動作しますが、私の出力は、例えば、いくつかの追加カピストラーノステータス出力を備えて

00:00 invoke:rake 01 $HOME/.rbenv/bin/rbenv exec bundle exec rake mytask ... ✔ 01 [email protected] 11.399s

これを抑制するための方法はありますか?

答えて

0

おそらく標準出力です。もしそうなら、あなたはそのような標準出力に標準エラーをリダイレクトすることができます

cap production invoke:rake TASK=mytask > out 2>&1 
+0

will_in_wi、そうではありません。 –

0

わかりましたので、私はかなり良い解決策を考え出したと思います。

鍵は、キャプチャを使用することでした(Capistrano 3.xには記載されていませんが、まだ動作しています)。 https://github.com/capistrano/capistrano-2.x-docs/blob/master/2.x-DSL-Action-Inspection-Capture.md

namespace :invoke do 
    desc "Execute a rake task on a remote server" 
    task :rake do 
    if ENV['TASK'] 
     on roles(:app) do 
     with rails_env: fetch(:rails_env) do 
      puts capture :rake, ENV['TASK'] 
     end 
     end 
    else 
     puts "\n\nFailed! You need to specify the 'TASK' parameter!", 
      "Usage: cap <stage> invoke:rake TASK=your:task" 
    end 
    end 
end 
関連する問題