@hackage cmdtheline0.2.3
Declarative command-line option parsing and documentation library.
Installation
Dependencies (8)
Dependents (15)
@hackage/edge, @hackage/Foster, @hackage/LogicGrowsOnTrees-MPI, @hackage/LogicGrowsOnTrees-processes, @hackage/acme-everything, @hackage/hesh, Show all…
CmdTheLine aims to remove tedium from the definition of command-line programs, producing usage and help with little effort.
The inspiration was found in Daniel Bunzli's http://erratique.ch/software/cmdliner library.
CmdTheLine uses applicative functors to provide a declarative, compositional mechanism for defining command-line programs by lifting regular Haskell functions over argument parsers.
A tutorial can be found at http://elifrey.com/2012/07/23/CmdTheLine-Tutorial/.
Suggestions, comments, and bug reports are appreciated. Please see the bug and issue tracker at http://github.com/eli-frey/cmdtheline.
Changes since 0.1:
More type safety: Types in CmdTheLine.Arg have been made more explicit to disalow unwanted behavior. Positional argument information and optional argument information are distinguished from each other. As well
Arg
s must be transformed intoTerm
before use, as some operations make since to perform onArg
but not onTerm
.ArgVal has only one method:
parser
andpp
have been fused into a tuple, so that instantiation ofArgVal
can be simplified for all parties.Err is an instance of MonadIO: The
Err
monad now supports IO action.File and Directory path validation: Taking advantage of new
Err
capabilities, the library provides new functions for validatingString
s inside ofTerm
s as being valid/existent file/directory paths.
Changes since 0.2.0:
Test friendly
unwrap
functions: To allow the testing of terms, there are now two new functions exported with System.Console.CmdTheLine.Term,unwrap
andunwrapChoice
. As well a datatype representing cause of early exit,EvalExit
is exported.
Changes since 0.2.1
Added adapter for interfacing with Getopt in module
System.Console.CmdTheLine
.