-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A simple library for processing command-line options. -- -- A simple library for processing command-line options. The library -- captures a common usage pattern of the GetOpt module form the standard -- libraries. @package simple-get-opt @version 0.3 -- | Provides support for processing command-line arguments. This is a -- simple wrapper around get-opt. Here is an example of a typical usage: -- --
-- data Settings = Settings
-- { verbose :: Bool
-- , inPar :: Int
-- , files :: [String]
-- }
--
-- options :: OptSpec Settings
-- options = OptSpec
-- { progDefaults = Settings { verbose = False
-- , inPar = 1
-- , files = []
-- }
--
-- , progOptions =
-- [ Option ['v'] ["verbose"]
-- "Display more information while working."
-- $ NoArg $ \s -> Right s { verbose = True }
--
-- , Option ['p'] ["par"]
-- "Process that many files at once."
-- $ ReqArg "NUM" $ \a s ->
-- case readMaybe a of
-- Just n | n > 0 -> Right s { inPar = n }
-- _ -> Left "Invalid value for `par`"
-- ]
--
-- , progParamDocs =
-- [ ("FILES", "The files that need processing.") ]
--
-- , progParams = \p s -> Right s { files = p : files s }
-- }
--
--
-- Here is what the usage information looks like:
--
-- -- *Main> dumpUsage options -- Parameters: -- FILES The files that need processing. -- -- Flags: -- -v --verbose Display more information while working. -- -p NUM --par=NUM Process that many files at once. --module SimpleGetOpt -- | Get the command-line options and process them according to the given -- spec. The options will be permuted to get flags. On failure, print an -- error message on standard error and exit. getOpts :: OptSpec a -> IO a -- | Get the command-line options and process them according to the given -- spec. The options will be permuted to get flags. Throws a -- GetOptException if some problems are found. getOptsX :: OptSpec a -> IO a -- | Specification of a collection of options, described by type -- a. data OptSpec a OptSpec :: a -> [OptDescr a] -> [(String, String)] -> (String -> OptSetter a) -> OptSpec a -- | Default options. This is what is used if no other options are -- provided. [progDefaults] :: OptSpec a -> a -- | A list of options and command-line flags. [progOptions] :: OptSpec a -> [OptDescr a] -- | Documentatio for the free-form parameters. [progParamDocs] :: OptSpec a -> [(String, String)] -- | Add a parameter that is not an option or a flag (i.e., this is just a -- free form command line parameter). [progParams] :: OptSpec a -> String -> OptSetter a -- | Describe an option. data OptDescr a Option :: [Char] -> [String] -> String -> ArgDescr a -> OptDescr a [optShortFlags] :: OptDescr a -> [Char] [optLongFlags] :: OptDescr a -> [String] [optDescription] :: OptDescr a -> String [optArgument] :: OptDescr a -> ArgDescr a -- | Manipulate options of type a, with support for errors. type OptSetter a = a -> Either String a -- | Describe an option argumnet. data ArgDescr a -- | This option does not take an argument. NoArg :: OptSetter a -> ArgDescr a -- | This optoin has a required arugment. The string describes the type of -- the argument. ReqArg :: String -> (String -> OptSetter a) -> ArgDescr a -- | This optoin has an optional arugment. The string describes the type of -- the argument. OptArg :: String -> (Maybe String -> OptSetter a) -> ArgDescr a data GetOptException GetOptException :: [String] -> GetOptException -- | Show the program's usage information on stderr. dumpUsage :: OptSpec a -> IO () -- | Print the given messages on stderr and show the program's usage -- info, then exit. reportUsageError :: OptSpec a -> [String] -> IO b -- | A string descibing the options. usageString :: OptSpec a -> String specToGetOpt :: OptSpec a -> [OptDescr (OptSetter a)] instance GHC.Show.Show SimpleGetOpt.GetOptException instance GHC.Exception.Type.Exception SimpleGetOpt.GetOptException