neal ec5ca53161 adding coop puppet scripts 5 år sedan
..
lib ec5ca53161 adding coop puppet scripts 5 år sedan
Modulefile ec5ca53161 adding coop puppet scripts 5 år sedan
README.md ec5ca53161 adding coop puppet scripts 5 år sedan
metadata.json ec5ca53161 adding coop puppet scripts 5 år sedan

README.md

yamlfile

yamlfile module with yaml_setting type+provider, a la Chris Price’ inifile module / ini_setting type+provider

This is an experimental utility module allowing for more dynamic configuration of the myriad of yaml files used to configure various yaml-configured ruby applications with finer grained control than templates would easily allow.

A rapid prototype provider is included built using Adrien Thebo’s filemapper utility module. It won’t account for comments but it mostly works.

Usage

The type interface is probably the hardest part and is largely a design question. The prototype says screw it, K.I.S.S., and assumes hashes are the most common thing to be dealing with for yaml configuration files. As such a pair of resources given as:

yaml_setting { 'example1_1':
  target => '/tmp/example1.yaml',
  key    => 'value/subkey/final',
  value  => ['one', 'two', 'three'],
}
yaml_setting { 'example1_2':
  target => '/tmp/example1.yaml',
  key    => 'value/subkey/other':
  value  => 'string',
}

should result in a file e.g. /tmp/example1.yaml:

value:
  subkey:
    final:
      - one
      - two
      - three
    other: string

Known Issues

Right now the type design doesn't allow for ruby symbols to be used as keys.

There are no tests.