If you want to keep the description "intuitive" (for the users of it, who have enough domain knowledge I assume), I think you will have to put "sensible" logic into your program.
For example, you should do away with the user-configurable listing of ftp_instances and dynamically generate it from each ftpXX section - if there are three ftpXX sections, you set ftp_instances to 01 02 03.
I can't recommend YAML as a configuration file format, as it is very sensitive to whitespace at the end of the file.
You could look at how fetchmail "structures" its config file format, but an .ini-style format isn't too bad either. Also consider the possible errors the users can/will make, when you phone in the changes they need to make - whitespace (except maybe newlines) shouldn't matter too much, and the script should output very good diagnostic messages when it encounters stuff it doesn't understand (and also output a log file for post mortem analysis). It should have a facility to comment out a single line. Putting whole sections into comments is an interesting thing but unnecessary in my opinion, and it creates too many nonobvious problems, if for example both, the comment begin and the comment end are outside of the displayed area.
In reply to Re: Configuration file design
by Corion
in thread Configuration file design
by castaway
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |