Skip to content

processone/yconf

Repository files navigation

YAML configuration processor

CI Coverage Status Hex version

You can find usage example in ejabberd. See econf.erl and ejabberd_options.erl for most parts that are using it.

Validation is performed based on rules that you pass to yconf:parser/2, there is no way to load those rules from some special syntax file. Generally you will do something like this:

yconf:parse("/home/me/conf.yml", #{
  host => yconf:string(),
  opts => yconf:options(#{
    addr => yconf:ip(),
    count => yconf:non_neg_int()
  }
)}).

That when feed with:

host: "test.com"
opts:
  addr: "127.0.0.1"
  count: 100

should produce:

{ok,[{host,"test.com"},{opts,[{addr,{127,0,0,1}},{count,100}]}]}