butcher-1.3.2.3: Chops a command or program invocation into digestable pieces.

Safe HaskellNone
LanguageHaskell2010

UI.Butcher.Monadic.Param

Contents

Description

Parameters are arguments of your current command that are not prefixed by some flag. Typical commandline interface is something like "PROGRAM [FLAGS] INPUT". Here, FLAGS are Flags in butcher, and INPUT is a Param, in this case a String representing a path, for example.

Synopsis

Documentation

data Param p Source #

param-description monoid. You probably won't need to use the constructor; mzero or any (<>) of param(Help|Default|Suggestion) works well.

Constructors

Param 

Fields

Instances

Semigroup (Param p) Source # 

Methods

(<>) :: Param p -> Param p -> Param p #

sconcat :: NonEmpty (Param p) -> Param p #

stimes :: Integral b => b -> Param p -> Param p #

Monoid (Param p) Source # 

Methods

mempty :: Param p #

mappend :: Param p -> Param p -> Param p #

mconcat :: [Param p] -> Param p #

paramHelp :: Doc -> Param p Source #

Create a Param with just a help text.

paramHelpStr :: String -> Param p Source #

Create a Param with just a help text.

paramDefault :: p -> Param p Source #

Create a Param with just a default value.

paramSuggestions :: [String] -> Param p Source #

Create a Param with just a list of suggestion values.

paramFile :: Param p Source #

Create a Param that is a file path.

paramDirectory :: Param p Source #

Create a Param that is a directory path.

addParamRead Source #

Arguments

:: (Applicative f, Typeable a, Show a, Read a) 
=> String

paramater name, for use in usage/help texts

-> Param a

properties

-> CmdParser f out a 

Add a parameter to the CmdParser by making use of a Read instance. Take care not to use this to return Strings unless you really want that, because it will require the quotation marks and escaping as is normal for the Show/Read instances for String.

addParamReadOpt Source #

Arguments

:: (Applicative f, Typeable a, Read a) 
=> String

paramater name, for use in usage/help texts

-> Param a

properties

-> CmdParser f out (Maybe a) 

Like addReadParam, but optional. I.e. if reading fails, returns Nothing.

addParamString :: forall f out. Applicative f => String -> Param String -> CmdParser f out String Source #

Add a parameter that matches any string of non-space characters if input==String, or one full argument if input==[String]. See the Input doc for this distinction.

addParamStringOpt :: forall f out. Applicative f => String -> Param Void -> CmdParser f out (Maybe String) Source #

Like addParamString, but optional, I.e. succeeding with Nothing if there is no remaining input.

addParamStrings :: forall f out. Applicative f => String -> Param Void -> CmdParser f out [String] Source #

Add a parameter that matches any string of non-space characters if input==String, or one full argument if input==[String]. See the Input doc for this distinction.

addParamNoFlagString :: forall f out. Applicative f => String -> Param String -> CmdParser f out String Source #

Like addParamString but does not match strings starting with a dash. This prevents misinterpretation of flags as params.

addParamNoFlagStringOpt :: forall f out. Applicative f => String -> Param Void -> CmdParser f out (Maybe String) Source #

Like addParamStringOpt but does not match strings starting with a dash. This prevents misinterpretation of flags as params.

addParamNoFlagStrings :: forall f out. Applicative f => String -> Param Void -> CmdParser f out [String] Source #

Like addParamStrings but does not match strings starting with a dash. This prevents misinterpretation of flags as params.

addParamRestOfInput :: forall f out. Applicative f => String -> Param Void -> CmdParser f out String Source #

Add a parameter that consumes _all_ remaining input. Typical usecase is after a "--" as common in certain (unix?) commandline tools.

addParamRestOfInputRaw :: forall f out. Applicative f => String -> Param Void -> CmdParser f out Input Source #

Add a parameter that consumes _all_ remaining input, returning a raw Input value.

Deprecated for more consistent naming

addReadParam Source #

Arguments

:: (Applicative f, Typeable a, Show a, Read a) 
=> String

paramater name, for use in usage/help texts

-> Param a

properties

-> CmdParser f out a 

Deprecated: use addParamRead

addReadParamOpt Source #

Arguments

:: (Applicative f, Typeable a, Read a) 
=> String

paramater name, for use in usage/help texts

-> Param a

properties

-> CmdParser f out (Maybe a) 

Deprecated: use addParamReadOpt

addStringParam :: forall f out. Applicative f => String -> Param String -> CmdParser f out String Source #

Deprecated: use addParamString

addStringParamOpt :: forall f out. Applicative f => String -> Param Void -> CmdParser f out (Maybe String) Source #

Deprecated: use addParamStringOpt

addStringParams :: forall f out. Applicative f => String -> Param Void -> CmdParser f out [String] Source #

Deprecated: use addParamStrings