This topic interests me. I am very interested to hear what the specific issues are with "non programmable" config files in your case.
Generally I find that people often choose config languages because of syntax preference, where in reality they should be thinking if what they are trying to express is data or behavior?
Ansible should have been just python. Yaml makes for an ugly programming language. Whereas python setup.py files should have been anything but python. It's a terrible source of metadata.
There are cases of course where the distinction is not that obvious.
Is your nginx config data or a program/behavior? How about your CI config?
Some common use cases:
- Compile config.js into config.json or config.yaml, use that config.js as an intermediate format to compile to real config.
- Environment variables, or require 'other-module.js'
Generally I find that people often choose config languages because of syntax preference, where in reality they should be thinking if what they are trying to express is data or behavior?
Ansible should have been just python. Yaml makes for an ugly programming language. Whereas python setup.py files should have been anything but python. It's a terrible source of metadata.
There are cases of course where the distinction is not that obvious. Is your nginx config data or a program/behavior? How about your CI config?