2023/09/02

任意のコマンド出力に色付けする irir を普段使いにする新機能

[golang] [go] [irir] [color] [cli]

irir

irir は、任意のコマンドの出力に、あらかじめ用意されたルールベースで色を付ける CLI ツールです。ログ出力や、テスト結果をフィルタして色を付けたりすると、目 grep がおもむろに捗ります。詳しくは README をご参照願います。

この irir コマンドなんですが、これまでは以下の様に任意のコマンドからパイプして stdout に色を付けるインターフェースでした。

$ cat example.log | irir log

しかし、このインターフェースには弱点があって、毎回コマンドの最後に | irir log という風に打つ必要があったのです。

正直、面倒くさいですよね。

自分でも使っていて面倒くさいなと思っていて、どうにかしたいなとしばらく前から考えていました。

Wrap Command Feature

そうしてこの度、解決策を実装しました。

これまでのパイプしてフィルタするインターフェースに加えて、以下の様に irir コマンド経由で任意のコマンドをキックして結果に色付けできるようになりました。

$ irir log -- cat example.log

こうすることで、なにが美味しいかというと、

alias logcat="irir log -- cat"

という風にエイリアスを設定しておくと、都度 | irir log というのを打つ必要がなくせるのです。やったね!

いま、この機能は Wrap Command Feature と呼んでいて Experimental ですが、@latest で go install すると手に入ります。ぜひお試しください。

いまのところ標準出力のみを対象にしています(標準エラーにも色付けしたい場合は混ぜてもらうかなんか別のやり方にするかはまだ迷っているところです 標準エラーもフィルタされるようになりました)。

また、外部入力をコマンドとして与えないでください。セキュリティホールです。

というわけで、単純なユースケースに対応しただけですが、圧倒的に便利になりました。

ではでは

サイト内検索