packages feed

optparse-applicative-0.13.0.0: optparse-applicative.cabal

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
    &#x20; \<$\> strOption
    &#x20;     ( long \"hello\"
    &#x20;    \<\> metavar \"TARGET\"
    &#x20;    \<\> help \"Target for the greeting\" )
    &#x20; \<*\> switch
    &#x20;     ( long \"quiet\"
    &#x20;    \<\> 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
    &#x20; where
    &#x20;   opts = info (helper \<*\> sample)
    &#x20;     ( fullDesc
    &#x20;    \<\> progDesc \"Print a greeting for TARGET\"
    &#x20;    \<\> 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 <paolo@capriotti.io>
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