色つけツール colr に、逆に受け取った標準入力から色を消す --erase オプションを追加した
地味に普段から重宝している colr に --erase
オプションを追加しました。
colr についての紹介エントリは以下をご覧ください。
色をつけたいことがある。そして色を消したい時がある
colrによってカジュアルに色をつけた標準出力を得ることができるようになったのですが、一方で色を消したいときもあることに気づきました。具体的にはエスケープコードを外したい。
標準出力をファイルやクリップボードなどに保存するとき、ツールによっては擬似端末かどうかに関わらず色つけ用のエスケープコードを強制的に出力するものがあります。
colrもそうです(理由についてはエントリを参照)。
意外に消したいタイミングは多くその度にそのコマンドの色消しオブションだったりsedなどで対応していたのですが、毎回ググるのもアレなので実装することにしました。
別コマンドにするか迷いましたが、あまりに小さい機能だったのでcolr にオプションとして追加しました。
使い方は簡単で colr --erase
をパイプに繋げるだけです。
$ any-colorful-command | colr --erase
具体的な実装ですが、 mattn/go-colorable の NonColorable をそのまま活用しています。便利!
v1.0.0
--eraseオプション実装してCI整備してこれで一区切り
— k1LoW (@k1LoW) 2019年11月30日
v1.0.0 https://t.co/bbEM9hh3yq
他に追加の機能が思いつかなかったので v1.0.0 としました。安定板。
このまま枯れたコマンドとして生きながらえてくれるといいなと思います。