| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Hledger.Data.RawOptions
Description
hledger's cmdargs modes parse command-line arguments to an intermediate format, RawOpts (an association list), rather than a fixed ADT like CliOpts. This allows the modes and flags to be reused more easily by hledger commands/scripts in this and other packages.
Synopsis
- data RawOpts
 - setopt :: String -> String -> RawOpts -> RawOpts
 - setboolopt :: String -> RawOpts -> RawOpts
 - appendopts :: [(String, String)] -> RawOpts -> RawOpts
 - inRawOpts :: String -> RawOpts -> Bool
 - boolopt :: String -> RawOpts -> Bool
 - choiceopt :: (String -> Maybe a) -> RawOpts -> Maybe a
 - collectopts :: ((String, String) -> Maybe a) -> RawOpts -> [a]
 - stringopt :: String -> RawOpts -> String
 - maybestringopt :: String -> RawOpts -> Maybe String
 - listofstringopt :: String -> RawOpts -> [String]
 - intopt :: String -> RawOpts -> Int
 - posintopt :: String -> RawOpts -> Int
 - maybeintopt :: String -> RawOpts -> Maybe Int
 - maybeposintopt :: String -> RawOpts -> Maybe Int
 - maybecharopt :: String -> RawOpts -> Maybe Char
 - overRawOpts :: ([(String, String)] -> [(String, String)]) -> RawOpts -> RawOpts
 
Documentation
The result of running cmdargs: an association list of option names to string values.
Arguments
| :: (String -> Maybe a) | "parser" that returns   | 
| -> RawOpts | actual options where to look for flag  | 
| -> Maybe a | exclusive choice among those returned as   | 
From a list of RawOpts, get the last one (ie the right-most on the command line) for which the given predicate returns a Just value. Useful for exclusive choice flags like --daily|--weekly|--quarterly...
>>>import Safe (readMay)>>>choiceopt Just (RawOpts [("a",""), ("b",""), ("c","")])Just "c">>>choiceopt (const Nothing) (RawOpts [("a","")])Nothing>>>choiceopt readMay (RawOpts [("LT",""),("EQ",""),("Neither","")]) :: Maybe OrderingJust EQ
collectopts :: ((String, String) -> Maybe a) -> RawOpts -> [a] Source #
Collects processed and filtered list of options preserving their order
>>>collectopts (const Nothing) (RawOpts [("x","")])[]>>>collectopts Just (RawOpts [("a",""),("b","")])[("a",""),("b","")]
intopt :: String -> RawOpts -> Int Source #
Reads the named option's Int argument. If not present it will return 0. An argument that is too small or too large will raise an error.
posintopt :: String -> RawOpts -> Int Source #
Reads the named option's natural-number argument. If not present it will return 0. An argument that is negative or too large will raise an error.
maybeintopt :: String -> RawOpts -> Maybe Int Source #
Reads the named option's Int argument, if it is present. An argument that is too small or too large will raise an error.