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.1.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
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 && <5.0), 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> |
| 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.1.1) |
| Uploaded | by JohnMillikin at 2015-01-13T06:05:42Z |
| 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 | 12903 total (10 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2015-01-13 [all 1 reports] |