Thinking of designing a program to modify config files
Sorry for the title, it's hard to explain the idea within the character limit. I'm thinking of designing a program that makes it easy to modify config files while maintaining their integrity. Basically, you would create a validation file that points to your config file. The file would contain rules for what the config file must contain, similar to what a DTD does for XML. You could specify what variables need to be included, what values a variable could have, cleanup rules (tolowercase), etc. The system would be pretty granular but could be pretty simple for people to implement if they choose to. The user can then use my program to validate the file (if they wish), or use it as a wrapper around the file. This would allow the user to modify the file like an object in a programming language. The program can also have a GUI interface which allows the user to modify the file like a form.
I think the file would share the same name as the config file with a unique extension added on. It could be double clicked on to get the GUI, from the command line have it's own interface, plus easily be edited if passed to a text editor. The validation file could be saved in either XML, JSON, or YAML since they can easily be converted to each other and it gives the user the freedom to work in whatever language they like.
I can think of a lot of benefits and potential uses for this program. First, it frees people up from designing a GUI for their config files. They modify a file and it generates it for them. Second, it allows people to trust the integrity of their config files. It doesn't replace config files, it compliments them. I also can see MMC like interface being implemented that group config files together.
I was wondering do people know of any systems like this in place? Do people think it's a good idea? If it is and I can get it done, I would like the validation file format to eventually become an open standard so others can create their own programs that interact with the files.