options-0.1.1: Parsing command-line options

# options-0.1.1: Parsing command-line options

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.

Modules

- Options