options: A powerful and easy-to-use command-line option parser.
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:
import Control.Applicative
import Options
data MainOptions = MainOptions
{ optMessage :: String
, optQuiet :: Bool
}
instance Options MainOptions where
defineOptions = pure MainOptions
<*> simpleOption "message" "Hello world!"
"A message to show the user."
<*> simpleOption "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 :: text
A message to show the user.
default: "Hello world!"
--quiet :: bool
Whether to be quiet.
default: false
Downloads
- options-1.2.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
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
- No Candidates
| Versions [RSS] | 0.1, 0.1.1, 1.0, 1.1, 1.2, 1.2.1, 1.2.1.1, 1.2.1.2 |
|---|---|
| Dependencies | base (>=4.1 && <4.8), bytestring (>=0.9), containers (>=0.1), monads-tf (>=0.1), transformers (>=0.2) [details] |
| License | MIT |
| Author | John Millikin <john@john-millikin.com> |
| Maintainer | John Millikin <john@john-millikin.com> |
| Revised | Revision 1 made by HerbertValerioRiedel at 2014-12-29T11:22:45Z |
| Category | Console |
| Home page | https://john-millikin.com/software/haskell-options/ |
| Source repo | head: git clone https://john-millikin.com/code/haskell-options/ this: git clone https://john-millikin.com/code/haskell-options/(tag haskell-options_1.2) |
| Uploaded | by JohnMillikin at 2014-05-17T22:47:39Z |
| Distributions | Arch:1.2.1.2, Debian:1.2.1.1, LTSHaskell:1.2.1.2, NixOS:1.2.1.2, Stackage:1.2.1.2 |
| Reverse Dependencies | 10 direct, 27 indirect [details] |
| Downloads | 12907 total (9 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Successful builds reported [all 1 reports] |