name: optparse-applicative version: 0.13.0.0 synopsis: Utilities and combinators for parsing command line options description: Here is a simple example of an applicative option parser: . @ data Sample = Sample { hello :: String , quiet :: Bool } . sample :: Parser Sample sample = Sample \<$\> strOption ( long \"hello\" \<\> metavar \"TARGET\" \<\> help \"Target for the greeting\" ) \<*\> switch ( long \"quiet\" \<\> help \"Whether to be quiet\" ) @ . The parser is built using applicative style starting from a set of basic combinators. In this example, @hello@ is defined as an 'option' with a @String@ argument, while @quiet@ is a boolean 'flag' (called 'switch'). . A parser can be used like this: . @ greet :: Sample -> IO () greet (Sample h False) = putStrLn $ \"Hello, \" ++ h greet _ = return () . main :: IO () main = execParser opts \>\>= greet where opts = info (helper \<*\> sample) ( fullDesc \<\> progDesc \"Print a greeting for TARGET\" \<\> header \"hello - a test for optparse-applicative\" ) @ . The @greet@ function is the entry point of the program, while @opts@ is a complete description of the program, used when generating a help text. The 'helper' combinator takes any parser, and adds a @help@ option to it (which always fails). . The @hello@ option in this example is mandatory (since it doesn't have a default value), so running the program without any argument will display a help text: . >hello - a test for optparse-applicative > >Usage: hello --hello TARGET [--quiet] > Print a greeting for TARGET > >Available options: > -h,--help Show this help text > --hello TARGET Target for the greeting > --quiet Whether to be quiet . containing a short usage summary, and a detailed list of options with descriptions. license: BSD3 license-file: LICENSE author: Paolo Capriotti maintainer: paolo@capriotti.io copyright: (c) 2012-2014 Paolo Capriotti category: System build-type: Simple cabal-version: >= 1.8 extra-source-files: CHANGELOG.md README.md tests/Examples/Alternatives.hs tests/Examples/Cabal.hs tests/Examples/Commands.hs tests/Examples/Hello.hs tests/Examples/Formatting.hs tests/alt.err.txt tests/cabal.err.txt tests/commands.err.txt tests/commands_header.err.txt tests/commands_header_full.err.txt tests/hello.err.txt tests/formatting.err.txt tests/nested.err.txt tests/subparsers.err.txt homepage: https://github.com/pcapriotti/optparse-applicative bug-reports: https://github.com/pcapriotti/optparse-applicative/issues source-repository head type: git location: https://github.com/pcapriotti/optparse-applicative.git library if impl(ghc >= 8) ghc-options: -Wall -Wno-redundant-constraints else ghc-options: -Wall exposed-modules: Options.Applicative, Options.Applicative.Arrows, Options.Applicative.BashCompletion, Options.Applicative.Builder, Options.Applicative.Builder.Completer, Options.Applicative.Builder.Internal, Options.Applicative.Common, Options.Applicative.Extra, Options.Applicative.Help, Options.Applicative.Help.Pretty, Options.Applicative.Help.Chunk, Options.Applicative.Help.Core, Options.Applicative.Help.Types, Options.Applicative.Types, Options.Applicative.Internal build-depends: base == 4.* , transformers >= 0.2 && < 0.6 , transformers-compat >= 0.3 && < 0.6 , process >= 1.0 && < 1.5 , ansi-wl-pprint >= 0.6.6 && < 0.7 if !impl(ghc >= 8) build-depends: semigroups >= 0.10 && < 0.19 test-suite optparse-applicative-tests type: exitcode-stdio-1.0 main-is: test.hs ghc-options: -Wall -threaded -O2 -funbox-strict-fields hs-source-dirs: tests build-depends: base , optparse-applicative , QuickCheck == 2.8.* if !impl(ghc >= 8) build-depends: semigroups