LoginSignup
3
0

More than 1 year has passed since last update.

YAML文法チェッカ(バリデータ)を作成したった

Last updated at Posted at 2022-05-26

TL;DR

YAMLの文法チェッカを作成した。これでYAMLファイルの内容のバリデーションができる。
引数でもパイプでも渡せるぞ!

紹介

YAMLファイルをコミットする前に最低限の文法チェックぐらいは済ませておきたい、というのは人情だと思う。
Ruby のワンライナーで YAML の文法チェック」という記事にいつもお世話になっていたが、ファイルの引数渡しでもパイプライン経由でもチェックできるよう、シェルスクリプトで工夫したものを作った。

肝となる引数とパイプ両方に対応、というのはコードにあるように if で判断してパイプで流しております。

次のシェルスクリプトを適当なファイル名で保存して使ってください。(僕は ymlck.sh という名前にして 0755 にして ~/bin/ に置いております)

ymlck.sh
#!/bin/sh

if [ -p /dev/stdin ]; then
    cat -
else
    cat $@
fi | ruby -r yaml -e 'YAML.load STDIN; puts "OK"'

使い方

# パイプ
$ cat somefile.yaml | ymlck.sh

# 引数渡し
$ ymlck.sh somefile.yaml

問題ないファイルであれば何も出ません。
問題のあるYAMLファイルの場合、エラーメッセージが出ます。

もう少し工夫したやつ

出力結果をJSONとして表示させるようなオプション付きのものを、こちらで公開しています。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0