mirror of
https://github.com/ilyakooo0/optparse-applicative.git
synced 2024-11-23 14:43:25 +03:00
116 lines
4.4 KiB
Plaintext
116 lines
4.4 KiB
Plaintext
name: optparse-applicative
|
|
version: 0.9.1.2
|
|
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 <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
|
|
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.Types,
|
|
Options.Applicative.Internal
|
|
ghc-options: -Wall
|
|
build-depends: base == 4.*,
|
|
transformers >= 0.2 && < 0.5,
|
|
transformers-compat == 0.3.*,
|
|
process >= 1.0 && < 1.3,
|
|
ansi-wl-pprint >= 0.6 && < 0.7
|