Options.Applicative
- Package
- purescript-optparse
- Repository
- f-o-a-m/purescript-optparse
Re-exports from Options.Applicative.Builder
#OptionFields Source
newtype OptionFields a
Instances
#Mod Source
data Mod f a
An option modifier.
Option modifiers are values that represent a modification of the properties of an option.
The type parameter @a@ is the pure type of the option, while @f@ is a record containing its properties (e.g. 'OptionFields' for regular options, 'FlagFields' for flags, etc...).
An option modifier consists of 3 elements:
A field modifier, of the form @f a -> f a@. These are essentially (compositions of) setters for some of the properties supported by @f@.
An optional default value and function to display it.
A property modifier, of the form @OptProperties -> OptProperties@. This is just like the field modifier, but for properties applicable to any option.
Modifiers are instances of 'Monoid', and can be composed as such.
One rarely needs to deal with modifiers directly, as most of the times it is sufficient to pass them to builders (such as 'strOption' or 'flag') to create options (see 'Options.Applicative.Builder').
Contraints are often used to ensure that the modifiers can be sensibly applied. For example, positional arguments can't be specified by long or short names, so the 'HasName' constraint is used to ensure we have a flag or option.
Instances
#ArgumentFields Source
newtype ArgumentFields a
Instances
#HasMetavar Source
class HasMetavar f
Instances
#subparserInline Source
subparserInline :: PrefsMod
Allow full mixing of subcommand and parent arguments by inlining
#subparser Source
subparser :: forall a. Mod CommandFields a -> Parser a
Builder for a command parser. The 'command' modifier can be used to
#strArgument Source
strArgument :: Mod ArgumentFields String -> Parser String
Builder for a 'String' argument.
#showHelpOnError Source
showHelpOnError :: PrefsMod
Show full help text on any error.
#showHelpOnEmpty Source
showHelpOnEmpty :: PrefsMod
Show the help text if the user enters only the program name or
#showDefaultWith Source
showDefaultWith :: forall a f. (a -> String) -> Mod f a
Specify a function to show the default value for an option.
#showDefault Source
showDefault :: forall a f. Show a => Mod f a
Show the default value for this option using its 'Show' instance.
#progDescDoc Source
progDescDoc :: forall a. Maybe Doc -> InfoMod a
Specify a short program description as a 'Text.PrettyPrint.ANSI.Leijen.Doc'
#prefs Source
prefs :: PrefsMod -> ParserPrefs
Create a ParserPrefs
given a modifier
#option Source
option :: forall a. ReadM a -> Mod OptionFields a -> Parser a
Builder for an option using the given reader.
#noIntersperse Source
noIntersperse :: forall a. InfoMod a
Disable parsing of regular options after arguments. After a positional
#noBacktrack Source
noBacktrack :: PrefsMod
Turn off backtracking after subcommand is parsed.
#noArgError Source
noArgError :: forall a. ParseError -> Mod OptionFields a
Specify the error to display when no argument is provided to this option.
#multiSuffix Source
multiSuffix :: String -> PrefsMod
Include a suffix to attach to the metavar when multiple values
#metavar Source
metavar :: forall a f. HasMetavar f => String -> Mod f a
Specify a metavariable for the argument.
#maybeReader Source
maybeReader :: forall a. (String -> Maybe a) -> ReadM a
Convert a function producing a 'Maybe' into a reader.
#infoOption Source
infoOption :: forall a. String -> Mod OptionFields (a -> a) -> Parser (a -> a)
An option that always fails and displays a message.
#info Source
info :: forall a. Parser a -> InfoMod a -> ParserInfo a
Create a 'ParserInfo' given a 'Parser' and a modifier.
#forwardOptions Source
forwardOptions :: forall a. InfoMod a
Intersperse matched options and arguments normally, but allow unmatched
#flag' Source
flag' :: forall a. a -> Mod FlagFields a -> Parser a
Builder for a flag parser without a default value.
#failureCode Source
failureCode :: forall a. ExitCode -> InfoMod a
Specify an exit code if a parse error occurs.
#eitherReader Source
eitherReader :: forall a. (String -> Either String a) -> ReadM a
Convert a function producing an 'Either' into a reader.
#disambiguate Source
disambiguate :: PrefsMod
Turn on disambiguation.
#defaultPrefs Source
defaultPrefs :: ParserPrefs
Default preferences.
#completer Source
completer :: forall a f. HasCompleter f => Completer -> Mod f a
Add a completer to an argument.
#completeWith Source
completeWith :: forall a f. HasCompleter f => Array String -> Mod f a
Add a list of possible completion values.
#commandGroup Source
commandGroup :: forall a. String -> Mod CommandFields a
Add a description to a group of commands.
#command Source
command :: forall a. String -> ParserInfo a -> Mod CommandFields a
Add a command to a subparser option.
#argument Source
argument :: forall a. ReadM a -> Mod ArgumentFields a -> Parser a
Builder for an argument parser.
#action Source
action :: forall a f. HasCompleter f => String -> Mod f a
Add a bash completion action. Common actions include @file@ and
#abortOption Source
abortOption :: forall a. ParseError -> Mod OptionFields (a -> a) -> Parser (a -> a)
An option that always fails.
Re-exports from Options.Applicative.Builder.Completer
#listIOCompleter Source
listIOCompleter :: Effect (Array String) -> Completer
Create a 'Completer' from an IO action
#listCompleter Source
listCompleter :: (Array String) -> Completer
Create a 'Completer' from a constant
#bashCompleter Source
bashCompleter :: String -> Completer
Run a compgen completion action.
Re-exports from Options.Applicative.Extra
#parserFailure Source
parserFailure :: forall a. ParserPrefs -> ParserInfo a -> ParseError -> Array Context -> ParserFailure ParserHelp
Generate a ParserFailure
from a ParseError
in a given Context
.
#hsubparser Source
hsubparser :: forall a. Mod CommandFields a -> Parser a
Builder for a command parser with a "helper" option attached.
#handleParseResult Source
handleParseResult :: forall a. ParserResult a -> Effect a
Handle ParserResult
.
#getParseResult Source
getParseResult :: forall a. ParserResult a -> Maybe a
Extract the actual result from a ParserResult
value.
#execParserPure Source
execParserPure :: forall a. ParserPrefs -> ParserInfo a -> Array String -> ParserResult a
The most general way to run a program description in pure code.
#execParser Source
execParser :: forall a. ParserInfo a -> Effect a
Run a program description.
#customExecParser Source
customExecParser :: forall a. ParserPrefs -> ParserInfo a -> Effect a
Run a program description with custom preferences.
Re-exports from Options.Applicative.Internal.Utils
#(<**>) Source
Operator alias for Options.Applicative.Internal.Utils.apApplyFlipped (left-associative / precedence 4)
Re-exports from Options.Applicative.Types
#ReadM Source
newtype ReadM a
A reader is used by the 'option' and 'argument' builders to parse the data passed by the user on the command line into a data type.
The most common are 'str' which is used for 'String', there are
readers for Int
, Number
, Boolean
.
More complex types can use the 'eitherReader' or 'maybeReader' functions to pattern match or use a more expressive parser like a member of the 'Parsec' family. A newtype over 'ReaderT String Except', used by option readers.
Instances
#ParserResult Source
#ParserPrefs Source
newtype ParserPrefs
Global preferences for a top-level 'Parser'. A 'ParserPrefs' contains general preferences for all command-line options, and can be built with the 'prefs' function.
Constructors
ParserPrefs { prefBacktrack :: Backtracking, prefColumns :: Int, prefDisambiguate :: Boolean, prefMultiSuffix :: String, prefShowHelpOnEmpty :: Boolean, prefShowHelpOnError :: Boolean }
Instances
#ParserInfo Source
newtype ParserInfo a
A 'ParserInfo' describes a command line program, used to generate a help screen. Two help modes are supported: brief and full. In brief mode, only an option and argument summary is displayed, while in full mode each available option and command, including hidden ones, is described.
A basic 'ParserInfo' with default values for fields can be created using the 'info' function.
Constructors
ParserInfo { infoFailureCode :: ExitCode, infoFooter :: Chunk Doc, infoFullDesc :: Boolean, infoHeader :: Chunk Doc, infoParser :: Parser a, infoPolicy :: ArgPolicy, infoProgDesc :: Chunk Doc }
Instances
#ParserHelp Source
#ParserFailure Source
#Parser Source
data Parser a
A 'Parser' is the core type in optparse-applicative. A value of type Parser a@ represents a specification for a set of options, which will yield a value of type a when the command line arguments are successfully parsed.
There are several types of primitive 'Parser'.
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.
** Parser builders
Each parser builder takes an option modifier. A modifier can be created by composing the basic modifiers provided by here using the 'Monoid' operations mempty' and 'append', or their aliases 'idm' and '<>'.
For example:
out = strOption ( long "output" <> short 'o' <> metavar "FILENAME" )
creates a parser for an option called "output".
Instances
#CompletionResult Source
newtype CompletionResult
Constructors
CompletionResult { execCompletion :: String -> Effect String }
Instances
#Completer Source
newtype Completer
optparse-applicative supplies a rich completion system for bash, zsh, and fish shells.
'Completer' functions are used for option and argument to complete their values.
Use the 'completer' builder to use these. The 'action' and 'completeWith' builders are also provided for convenience, to use 'bashCompleter' and 'listCompleter' as a 'Mod'.
Instances
#readerError Source
readerError :: forall a. String -> ReadM a
Abort option reader by exiting with an error message.
#readerAbort Source
readerAbort :: forall a. ParseError -> ReadM a
Abort option reader by exiting with a 'ParseError'.
#overFailure Source
overFailure :: forall a. (ParserHelp -> ParserHelp) -> ParserResult a -> ParserResult a
- Modules
- Options.
Applicative - 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. Chunk - Options.
Applicative. Help. Core - Options.
Applicative. Help. Levenshtein - Options.
Applicative. Help. Pretty - Options.
Applicative. Help. Types - Options.
Applicative. Internal - Options.
Applicative. Internal. Utils - Options.
Applicative. Types - Text.
PrettyPrint. Leijen
@since 0.13.0.0