console-program-0.4.2.1: Interpret the command line and a config file as commands and options

Safe HaskellSafe
LanguageHaskell98

System.Console.Argument

Contents

Description

This module contains functions to create option descriptions, together with their argument types.

Synopsis

Option descriptions

data Option a Source #

A value of type Option a describes an option, that delivers a value to the program of type a.

option Source #

Arguments

:: [Char]

List of short option characters.

-> [String]

List of long option strings.

-> Type a

Type of option argument.

-> a

Default value when the option is not specified by the user.

-> String

Description.

-> Option a

The resulting option description.

Create an option description.

Options can have arguments, as in myprogram --foo=bar, where bar is the argument to foo. These arguments have types, dictated by the particular option; this type is the third parameter to option.

data Type a Source #

A Type a represents the type of an option or argument.

Further below you can find some common types of option arguments.

Constructors

Type 

Fields

  • parser :: String -> Either String a

    Parse the option argument into a value (Right) or signal a parsing error (Left).

  • name :: String

    A name for this type of option argument (for usage info).

  • defaultValue :: Maybe a

    The default value when the option occurs without option argument. Nothing means that an argument is required for this type of option.

Instances

Functor Type Source # 

Methods

fmap :: (a -> b) -> Type a -> Type b #

(<$) :: a -> Type b -> Type a #

Argument types

optional Source #

Arguments

:: a

Default value.

-> Type a 
-> Type a 

string :: Type String Source #

A plain string.

boolean :: Type Bool Source #

A boolean. Argument can be "1","0","true","false","on","off","yes","no".

directory :: Type FilePath Source #

A directory path. A trailing slash is stripped, if present.

file :: Type FilePath Source #

A file path.

device :: Type FilePath Source #

A device path.

natural :: Type Integer Source #

A natural number (in decimal).

integer :: Type Integer Source #

An integer number (in decimal).