Safe Haskell | None |
---|---|
Language | Haskell98 |
System.Console.Docopt.NoTH
Contents
- parseUsage :: String -> Either ParseError Docopt
- parseUsageOrExit :: String -> IO Docopt
- parseArgs :: Docopt -> [String] -> Either ParseError Arguments
- parseArgsOrExit :: Docopt -> [String] -> IO Arguments
- data ParseError :: *
- data Docopt
- usage :: Docopt -> String
- exitWithUsage :: Docopt -> IO a
- exitWithUsageMessage :: Docopt -> String -> IO a
- data Option
- type Arguments = Map Option ArgValue
- isPresent :: Arguments -> Option -> Bool
- notPresent :: Arguments -> Option -> Bool
- getArg :: Arguments -> Option -> Maybe String
- getArgOrExitWith :: Docopt -> Arguments -> Option -> IO String
- getArgWithDefault :: Arguments -> String -> Option -> String
- getAllArgs :: Arguments -> Option -> [String]
- getArgCount :: Arguments -> Option -> Int
- command :: String -> Option
- argument :: String -> Option
- shortOption :: Char -> Option
- longOption :: String -> Option
- getAllArgsM :: Monad m => Arguments -> Option -> m [String]
- notPresentM :: Monad m => Arguments -> Option -> m Bool
- isPresentM :: Monad m => Arguments -> Option -> m Bool
- getFirstArg :: Monad m => Arguments -> Option -> m String
Usage parsers
parseUsage :: String -> Either ParseError Docopt #
Parse docopt-formatted usage patterns.
For help with the docopt usage format, see the readme on github.
parseUsageOrExit :: String -> IO Docopt #
Same as parseUsage
, but exitWithUsage
on parse failure. E.g.
let usageStr = "Usage:\n prog [--option]\n" patterns <- parseUsageOrExit usageStr
Command line arguments parsers
parseArgsOrExit :: Docopt -> [String] -> IO Arguments #
Same as parseArgs
, but exitWithUsage
on parse failure. E.g.
args <- parseArgsOrExit patterns =<< getArgs
Re-exported from Parsec
data ParseError :: * #
The abstract data type ParseError
represents parse errors. It
provides the source position (SourcePos
) of the error
and a list of error messages (Message
). A ParseError
can be returned by the function parse
. ParseError
is an
instance of the Show
and Eq
classes.
Instances
Parsed usage string
exitWithUsage :: Docopt -> IO a #
Exit after printing usage text.
exitWithUsageMessage :: Docopt -> String -> IO a #
Exit after printing a custom message followed by usage text. Intended for convenience when more context can be given about what went wrong.
Argument lookup
A named leaf node of the usage pattern tree
type Arguments = Map Option ArgValue #
Maps each Option to all of the valued parsed from the command line (in order of last to first, if multiple values encountered)
Query functions
isPresent :: Arguments -> Option -> Bool #
True
if an option was present at all in an invocation.
Useful with longOption
s and shortOption
s, and in conjunction with when
.
notPresent :: Arguments -> Option -> Bool #
getArgOrExitWith :: Docopt -> Arguments -> Option -> IO String #
Same as getArg
, but exitWithUsage
if Nothing
.
As in getArg
, if your usage pattern required the option, getArgOrExitWith
will not exit.
getAllArgs :: Arguments -> Option -> [String] #
Returns all occurrences of a repeatable option, e.g. <file>...
.
getArgCount :: Arguments -> Option -> Int #
Return the number of occurrences of an option in an invocation.
Useful with repeatable flags, e.g. [ -v | -vv | -vvv]
.
Option
constructors
For Usage: prog cmd
, ask for command "cmd"
.
For Usage: prog -
or Usage: prog [-]
, ask for command "-"
. Same for --
.
argument :: String -> Option #
For Usage: prog <file>
, ask for argument "file"
.
Note: A Usage: prog --output=<file>
is not matched by argument "file"
. See longOption
.
shortOption :: Char -> Option #
For Usage: prog -h
, ask for shortOption 'h'
.
For Usage: prog -o=<file>
, ask for shortOption 'o'
.
longOption :: String -> Option #
For Usage: prog --version
, ask for longOption "version"
.
For Usage: prog --output=<file>
, ask for longOption "output"
.
Deprecated
getAllArgsM :: Monad m => Arguments -> Option -> m [String] #
Deprecated: Monadic query functions will soon be removed
notPresentM :: Monad m => Arguments -> Option -> m Bool #
Deprecated: Monadic query functions will soon be removed
isPresentM :: Monad m => Arguments -> Option -> m Bool #
Deprecated: Monadic query functions will soon be removed
getFirstArg :: Monad m => Arguments -> Option -> m String #
Deprecated: Use getAllArgs
instead