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.1, 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 | 12573 total (35 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] |