gjq v0.2.0 をリリースした
昨日の今日で恐縮だが [spiegel-im-spiegel/gjq] v0.2.0 をリリースした。
2つほどオプションを追加した。
$ gjq -h
Usage:
gjq [flags] <filter string>
Flags:
-c, --clipboard copy to clipboard in interactive mode
-C, --color colorize JSON
--debug for debug
-f, --file string JSON data (file path)
-h, --help help for gjq
-i, --indent int indent size for formatted JSON string (default 2)
-I, --interactive interactive mode
-t, --tab use tabs for indentation
-u, --url string JSON data (URL)
-v, --version output version of gjq
小文字の -c
をつけると対話モード時にフィルタリング結果をクリップボードにコピーする。
逆にこのオプションを付けないとクリップボードへのコピーは行わないようにした。
対話モードは Ctrl+C
を入力するまで続くが,この割り込みタイミングで直前の結果をクリップボードにコピーする。
大文字の -C
オプションでフィルタリング結果をカラー表示できるようにした。
ファイルやクリップボードへの出力には影響しない(筈)。
JSON 文字列のカラー化には以下の2つのパッケージを利用している。
- fatih/color: Color package for Go (golang)
- nwidger/jsoncolor: Colorized JSON output for Go https://godoc.org/github.com/nwidger/jsoncolor
いやぁ,おかげさまで実装がめっさ簡単だったわ(笑)
あと Windows とそれ以外のプラットフォームとの差を吸収するために
を利用している。 たとえば
fmt.Fprintln(colorable.NewColorableStdout(), string(coloredJSONbytes))
とかすればプラットフォームに関係なく ANSI 標準のエスケープシーケンスを使って文字に色を付けることができる。
これで「jq ぽい何か」でやりたいことはだいたい実装できたので本来の作業へ戻るとしよう。
ブックマーク
[spiegel-im-spiegel/gjq]: https://github.com/spiegel-im-spiegel/gjq “spiegel-im-spiegel/gjq: Another Implementation of “jq” by golang”
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。