-- 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