What name for Config::Model’s new command line ? cfg or something else ?
As Damyan mentioned last summer in Debconf, the current command interface to Config::Model Perl module is rather cumbersome as it involves quite a lot of typing. First, config-edit command name is too long. Even with the help bash completion, this does not compare well with git or hg command. Then all operation require options. For instance, the -application option is required to specify what you will be working on. A required option is a good example of an oxymoron. Which may be funny but which is not user friendly…
So, here’s the synopsis of the new command I’m working on:
# edit dpkg config with GUI (Tk or curses, or readline) cfg edit dpkg # just check the validity of the file, show warnings # and suggested fixes # does not modify the file cfg check dpkg # check the file, remove deprecated parameters, # migrate data to new parameters and save cfg migrate dpkg # like migrate, but also apply all suggested fixes cfg fix dpkg # like migrate and modify configuration # with command line argument cfg modify dpkg source format="quilt (3.0)" # access dpkg parameters through a fuse file # system. data are saved when fs is unmounted cfg fusefs dpkg fuse-dir # dump configuration data in config-model format cfg dump dpkg # list all available applications cfg list # more general synopsis cfg [ global_options ] command application [ options ] arguments
This synopsis use dpkg as an example, but it could be used for any of the available models (e.g. ssh, lcdproc, multistrap …).
The main question I have for you is: Is cfg name good ? I mean it’s short, descriptive enough. But it’s also quite ugly. Does anyone have a better idea ?
And what do you think of the synopsis shown above ? Are the sub-command name descriptive enough ?
All the best