The options package
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.
Properties
| Versions | 0.1, 0.1.1 |
|---|---|
| Dependencies | base (≥4.1 & <5.0), bytestring (≥0.9), containers (≥0.1), monads-tf (≥0.1), system-filepath (0.4.*), template-haskell (≥2.3), text (≥0.7), transformers (≥0.2) |
| License | MIT |
| Author | John Millikin <jmillikin@gmail.com> |
| Maintainer | John Millikin <jmillikin@gmail.com> |
| Stability | experimental |
| Category | Console |
| Home page | https://john-millikin.com/software/haskell-options/ |
| Bug tracker | mailto:jmillikin@gmail.com |
| Source repository | bzr branch https://john-millikin.com/branches/haskell-options/0.1/ |
| Upload date | Sun Apr 8 20:57:20 UTC 2012 |
| Uploaded by | JohnMillikin |
| Built on | ghc-7.4 |
| Distributions | Debian: 0.1.1 |
Modules
Downloads
- options-0.1.1.tar.gz (Cabal source package)
- package description (included in the package)