tee に渡すとカラー出力が打ち消されて色なしになってしまう
開発環境の構築などの定型処理は Rakefile でタスクを定義して、バッチ処理として実行しています。 この際にログも保持するようにしているのですが、単純に tee に渡すだけでは標準出力もログもカラー出力が打ち消されてしまうことに気がつきました。
$ rake init 2>&1 | tee -a init.log
これを解決するためには unbuffer を利用すればよいことがわかりました。本来の unbuffer の使い方とは少し違いますが...
ログもエスケープシーケンスつきの色つきで保存されているので、less -R
で色つきのまま確認することができます。
$ unbuffer rake init 2>&1 | tee -a init.log