options: Parsing command-line options

[ console, library, mit ] [ Propose Tags ]

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.
Versions [RSS] [faq] 0.1, 0.1.1, 1.0, 1.1, 1.2, 1.2.1, 1.2.1.1
Dependencies base (>=4.0 && <4.8), bytestring (==0.9.*), containers (>=0.1 && <0.5), monads-tf, system-filepath (==0.4.*), template-haskell, text (>=0.7 && <0.12), transformers (==0.2.*) [details]
License MIT
Author John Millikin <jmillikin@gmail.com>
Maintainer John Millikin <jmillikin@gmail.com>
Revised Revision 1 made by HerbertValerioRiedel at 2014-12-29T11:22:03Z
Category Console
Home page https://john-millikin.com/software/haskell-options/
Bug tracker mailto:jmillikin@gmail.com
Source repo head: bzr branch https://john-millikin.com/branches/haskell-options/0.1/
this: bzr branch https://john-millikin.com/branches/haskell-options/0.1/ -r haskell-options_0.1
Uploaded by JohnMillikin at 2012-03-24T19:07:23Z
Distributions Arch:1.2.1.1, Debian:1.2.1.1, LTSHaskell:1.2.1.1, NixOS:1.2.1.1, Stackage:1.2.1.1
Downloads 11187 total (52 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates