色つけツール colr に、逆に受け取った標準入力から色を消す --erase オプションを追加した

地味に普段から重宝している colr--erase オプションを追加しました。

colr についての紹介エントリは以下をご覧ください。

k1low.hatenablog.com

色をつけたいことがある。そして色を消したい時がある

colrによってカジュアルに色をつけた標準出力を得ることができるようになったのですが、一方で色を消したいときもあることに気づきました。具体的にはエスケープコードを外したい。

標準出力をファイルやクリップボードなどに保存するとき、ツールによっては擬似端末かどうかに関わらず色つけ用のエスケープコードを強制的に出力するものがあります。

colrもそうです(理由についてはエントリを参照)。

意外に消したいタイミングは多くその度にそのコマンドの色消しオブションだったりsedなどで対応していたのですが、毎回ググるのもアレなので実装することにしました。

別コマンドにするか迷いましたが、あまりに小さい機能だったのでcolr にオプションとして追加しました。

使い方は簡単で colr --erase をパイプに繋げるだけです。

$ any-colorful-command | colr --erase

具体的な実装ですが、 mattn/go-colorableNonColorable をそのまま活用しています。便利!

v1.0.0

他に追加の機能が思いつかなかったので v1.0.0 としました。安定板。

このまま枯れたコマンドとして生きながらえてくれるといいなと思います。