cmdargs-0.6.4: Command line argument processingSource codeContentsIndex
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
convert :: String -> [OptDescr a] -> Mode ([a], [String])
getOpt :: ArgOrder a -> [OptDescr a] -> [String] -> ([a], [String], [String])
getOpt' :: ArgOrder a -> [OptDescr a] -> [String] -> ([a], [String], [String], [String])
usageInfo :: String -> [OptDescr a] -> String
data ArgOrder a = Permute
data OptDescr a = Option [Char] [String] (ArgDescr a) String
data ArgDescr a
= NoArg a
| ReqArg (String -> a) String
| OptArg (Maybe String -> a) String
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 System.Environment.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] -> StringSource
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
data OptDescr a Source

Each OptDescr describes a single option/flag.

The arguments to Option are:

  • list of short option characters
  • list of long option strings (without --, may not be 1 character long)
  • argument descriptor
  • explanation of option for userdata
Constructors
Option [Char] [String] (ArgDescr a) String
data ArgDescr a Source
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 ano argument expected
ReqArg (String -> a) Stringoption requires argument
OptArg (Maybe String -> a) Stringoptional argument
Produced by Haddock version 2.6.0