optparse-applicative-0.12.1.0: Utilities and combinators for parsing command line options

Safe HaskellSafe
LanguageHaskell98

Options.Applicative.Common

Contents

Synopsis

Option parsers

A Parser is composed of a list of options. Several kinds of options are supported:

  • Flags: simple no-argument options. When a flag is encountered on the command line, its value is returned.
  • Options: options with an argument. An option can define a reader, which converts its argument from String to the desired value, or throws a parse error if the argument does not validate correctly.
  • Arguments: positional arguments, validated in the same way as option arguments.
  • Commands. A command defines a completely independent sub-parser. When a command is encountered, the whole command line is passed to the corresponding parser.

data Parser a

A Parser a is an option parser returning a value of type a.

liftOpt :: Option a -> Parser a

Create a parser composed of a single option.

Program descriptions

data ParserInfo a

A full description for a runnable Parser for a program.

Constructors

ParserInfo 

Fields

infoParser :: Parser a

the option parser for the program

infoFullDesc :: Bool

whether the help text should contain full documentation

infoProgDesc :: Chunk Doc

brief parser description

infoHeader :: Chunk Doc

header of the full parser description

infoFooter :: Chunk Doc

footer of the full parser description

infoFailureCode :: Int

exit code for a parser failure

infoIntersperse :: Bool

allow regular options and flags to occur after arguments (default: True)

Instances

data ParserPrefs

Global preferences for a top-level Parser.

Constructors

ParserPrefs 

Fields

prefMultiSuffix :: String

metavar suffix for multiple options

prefDisambiguate :: Bool

automatically disambiguate abbreviations (default: False)

prefShowHelpOnError :: Bool

always show help text on parse errors (default: False)

prefBacktrack :: Bool

backtrack to parent parser when a subcommand fails (default: True)

prefColumns :: Int

number of columns in the terminal, used to format the help page (default: 80)

Running parsers

runParserInfo :: MonadP m => ParserInfo a -> Args -> m a

runParserFully :: MonadP m => ArgPolicy -> Parser a -> Args -> m a

runParser :: MonadP m => ArgPolicy -> Parser a -> Args -> m (a, Args)

Apply a Parser to a command line, and return a result and leftover arguments. This function returns an error if any parsing error occurs, or if any options are missing and don't have a default value.

evalParser :: Bool -> Bool -> (forall x. OptHelpInfo -> Option x -> b) -> Parser a -> Either (OptTree b) a

The default value of a Parser. This function returns an error if any of the options don't have a default value.

Low-level utilities

mapParser :: (forall x. OptHelpInfo -> Option x -> b) -> Parser a -> [b]

Map a polymorphic function over all the options of a parser, and collect the results in a list.

treeMapParser :: (forall x. OptHelpInfo -> Option x -> b) -> Parser a -> OptTree b

Like mapParser, but collect the results in a tree structure.

optDesc :: ParserPrefs -> OptDescStyle -> OptHelpInfo -> Option a -> Chunk Doc

Generate description for a single option.

data OptDescStyle

Style for rendering an option.

Constructors

OptDescStyle