最近あるプロジェクトで階層構造のある設定ファイルが必要になり、コメントを入れる必要からYAMLフォーマットを選択した。 だがYAMLはoctalの罠にハマった嫌な思い出がある。
Integer Language-Independent Type for YAML™ Version 1.1
1 2 3 4 5 6 7 |
|
0で始まり7までの数字だけであれば base 8 になり8以上の数字を含めば base 10 になるのは無しだろう。
YAML 1.2ではこの罠は無いが
それにどこかで読んだ、設定ファイルが途中で途切れたままデプロイされても文法エラーにならない、 という欠点は気になる。
コメントさえ使えればJSON使うのに… ということでシンプルなツールを書いた。
Uncomment | github.com/mash/uncomment
良いライブラリがあったので特に難しいことはしていない。 コマンドの引数やstdin,stdoutが他のツールと組み合わせやすいか、だけ気にして作った。
元々のあるプロジェクトではviperを使っていたので何も変えずに設定ファイルの食わせ方を変えるだけでコメントを含んだ緩いJSONを使えるようになる。
1 2 3 4 5 |
|
ライブラリ選定中にJSON5というのを発見して、「これジャン!」となり、こりゃ欲しいツールは既にあるだろうな心のどこかで思いながらも最後まで走りきって作ってしまった。 案の定似たようなツールはたくさんあった。
この小さなプロジェクトの気に入っている点は、良い名前をつけられたことかな。 パイプで繋いだ時の見え方、しっくりくるではないか。