(2013/05/24追記あり) デプロイツールとして Cinnamon がカジュアルで良いかなぁと思って使い始めているのですが、remote で実行するコマンドが \r を \r\n 以外で出力するとその後の出力がうまく拾えないという問題が発生しました。 \r がどんな場合に出力されるかというと、progress メーターみたいに % 表示する場合ですね。
| |
maven で依存ライブラリをダウンロードするところで引っかかりました。これは mvn -B と batch mode にすることで回避することができます。curl で -s を付けない場合にも download の進捗が表示されますね。 そんで、コードを追っかけてみようかなと。Cinnamon の当該部分は HandleManager.pm の start_async_read() の中
| |
で push_read の type が line なのは AnyEvent::Handle の↓この部分かな。
| |
ふむふむ Cinnamon::HandleManager をこう書き換えると期待通りかな?
$handle->push_read(line => sub {
↓
$handle->push_read(line => qr|\r?\n|, sub {これは AnyEvnet::Handle の問題なんでしょうか?
※ 2013/05/24 追記
Cinnamon への Pull Request を merge してもらいました。 https://github.com/kentaro/cinnamon/pull/23
