読者です 読者をやめる 読者になる 読者になる

ぶていのログでぶログ

思い出したが吉日

YAMLを入力してerbを使って出力する奴を作った

2015/07/27追記

id:lamanotrama さんから * JSONじゃなくてYAMLでは? * それglidenote(さん)が作ってるよ - glidenote/genecon · GitHub

っていうことを教えてもらいました!あざまっす! やっぱり車輪の再発明だった!つくりこまなくてよかったー


サーバから情報を抜いて、ガっと設定ファイルをつくろうとした時に単純な構文だったらvimのマクロや sed / awk / perl なんかでワンライナーで作ってしまうのだけど、少し複雑になるとワンライナーでは厳しい…

それで、毎回スクリプト使ってゴリゴリ出力していたのだけど、それはそれでめんどくさくなって来たので JSON YAMLを入力してerbを使って出力するスクリプトを作ってみた。

とりあえずで作ったのでかなり単純

#!/usr/bin/env ruby

require 'YAML'
require 'erb'
require 'ostruct'

yamlfile = ARGV[0]
erbfile = ARGV[1]

yaml = YAML.load_file(yamlfile)
erb = ERB.new(File.read(erbfile))
puts erb.result(OpenStruct.new(yaml).instance_eval{binding})
# https://github.com/buty4649/yaml2erb

$ ./yamk2erb yaml erb とかすると出力される 微妙に車輪の再発明感があるけどググっても出てこなかったので作った次第。

このブログを書いてて気づいたけど、yamlからerbを生成していないので yaml2erb っていう名前は不適切だった… あとでなおそう