cmdargs-0.10.20: Command line argument processing

System.Console.CmdArgs.GetOpt

Description

This provides a compatiblity wrapper to the System.Console.GetOpt module in base. That module is essentially a Haskell port of the GNU getopt library.

Changes: The changes from GetOpt are listed in the documentation for each function.

Synopsis

# Documentation

convert :: String -> [OptDescr a] -> Mode ([a], [String]) Source #

Given a help text and a list of option descriptions, generate a Mode.

getOpt :: ArgOrder a -> [OptDescr a] -> [String] -> ([a], [String], [String]) Source #

Process the command-line, and return the list of values that matched (and those that didn't). The arguments are:

• The order requirements (see ArgOrder)
• The option descriptions (see OptDescr)
• The actual command line arguments (presumably got from getArgs).

getOpt returns a triple consisting of the option arguments, a list of non-options, and a list of error messages.

Changes: The list of errors will contain at most one entry, and if an error is present then the other two lists will be empty.

getOpt' :: ArgOrder a -> [OptDescr a] -> [String] -> ([a], [String], [String], [String]) Source #

Changes: This is exactly the same as getOpt, but the 3rd element of the tuple (second last) will be an empty list.

usageInfo :: String -> [OptDescr a] -> String Source #

Return a string describing the usage of a command, derived from the header (first argument) and the options described by the second argument.

data ArgOrder a Source #

What to do with options following non-options.

Changes: Only Permute is allowed, both RequireOrder and ReturnInOrder have been removed.

Constructors

 Permute

Instances

 Source # Methodsfmap :: (a -> b) -> ArgOrder a -> ArgOrder b #(<$) :: a -> ArgOrder b -> ArgOrder a # data OptDescr a :: * -> * # Each OptDescr describes a single option. The arguments to Option are: • list of short option characters • list of long option strings (without "--") • argument descriptor • explanation of option for user Constructors  Option [Char] [String] (ArgDescr a) String Instances  Since: 4.6.0.0 Methodsfmap :: (a -> b) -> OptDescr a -> OptDescr b #(<$) :: a -> OptDescr b -> OptDescr a #

data ArgDescr a :: * -> * #

Describes whether an option takes an argument or not, and if so how the argument is injected into a value of type a.

Constructors

 NoArg a no argument expected ReqArg (String -> a) String option requires argument OptArg (Maybe String -> a) String optional argument

Instances

 Since: 4.6.0.0 Methodsfmap :: (a -> b) -> ArgDescr a -> ArgDescr b #(<\$) :: a -> ArgDescr b -> ArgDescr a #