[Haskell-cafe] ANNOUNCE: options, an easy-to-use command-line option parser
John Millikin
jmillikin at gmail.com
Sat Mar 24 20:13:53 CET 2012
Hackage: http://hackage.haskell.org/package/options
Home page: https://john-millikin.com/software/haskell-options/
API reference: https://john-millikin.com/software/haskell-options/reference/haskell-options/latest/
The options package lets library and application developers easily
work with command-line options.
The following example is a full program that can accept two options,
--message and --quiet:
----------------------------------------------------------
{-# LANGUAGE TemplateHaskell #-}
import Options
defineOptions "MainOptions" $ do
stringOption "optMessage" "message" "Hello world!"
"A message to show the user."
boolOption "optQuiet" "quiet" False
"Whether to be quiet."
main :: IO ()
main = runCommand $ \opts args -> do
if optQuiet opts
then return ()
else putStrLn (optMessage opts)
----------------------------------------------------------
----------------------------------------------------------
$ ./hello
Hello world!
$ ./hello --message='ciao mondo'
ciao mondo
$ ./hello --quiet
$
----------------------------------------------------------
In addition, this library will automatically create documentation
options such as --help and --help-all:
----------------------------------------------------------
$ ./hello --help
Help Options:
-h, --help Show option summary.
--help-all Show all help options.
Application Options:
--message A message to show the user.
--quiet Whether to be quiet.
----------------------------------------------------------
More information about the Haskell-Cafe
mailing list