[Haskell-cafe] Typed Configuration Files
ketil at malde.org
Thu Jan 14 07:11:29 EST 2010
Magnus Therning <magnus at therning.org> writes:
> Seriously, cmdargs is *brilliant*. It's also magic (to me).
On this list, I'm uncertain whether "brilliant" is a warning or a
recommendation, but "magic" is clearly irresistible, so I had a go at
And I agree, it is really nice in quickly and succintly getting command
parsing up and working, and in that it most Works As Expected (tm).
Some snags I ran into, which may (or may not) serve to improve
documentation, and which may (or may not) result in some gentle guidande
as to preferred solutions rising to the surface:
- The examples use 'def' a lot, and I mistakenly thought 'empty' would
supply default values. Not so, replace 'def' with the default value
and off you go. 'def' seems to be the "minimum" value for that
- As I wanted a single file argument, I tried to use 'args' in
combination with a parameter of type FilePath. Apparently 'args'
wants [FilePath] and appends command line arguments to the default
value. I used 'error "no file bla bla"' as the default value, and
appending to this didn't do much good, as you can imagine. So: use
[FilePath] and check the length manually.
- CmdArgs helpfully provides default --help, --version as well as
--quite and --verbose. For the two former, there's also a nice
default implementation, but presumably the latter two are for use in
the program proper. Unfortunately, I don't know how to get at their
If I haven't seen further, it is by standing in the footprints of giants
More information about the Haskell-Cafe