Rename Parameter to Arg
This commit is contained in:
parent
ecb48e142a
commit
5d9f1e3b39
1 changed files with 25 additions and 26 deletions
|
@ -4,17 +4,17 @@
|
||||||
|
|
||||||
module Turtle.Options
|
module Turtle.Options
|
||||||
( Parser
|
( Parser
|
||||||
, ParameterName(..)
|
, ArgName(..)
|
||||||
, LongName(..)
|
, LongName(..)
|
||||||
, HelpMessage(..)
|
, HelpMessage(..)
|
||||||
, options
|
, options
|
||||||
, switch
|
, switch
|
||||||
, parameter
|
, arg
|
||||||
, parameterAuto
|
, argRead
|
||||||
, parameterText
|
, argText
|
||||||
, parameterInteger
|
, argInteger
|
||||||
, parameterInt
|
, argInt
|
||||||
, parameterDouble
|
, argDouble
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.Monoid
|
import Data.Monoid
|
||||||
|
@ -35,7 +35,7 @@ options header parser = liftIO
|
||||||
$ Opts.execParser
|
$ Opts.execParser
|
||||||
$ Opts.info (Opts.helper <*> parser) (Opts.header (Text.unpack header))
|
$ Opts.info (Opts.helper <*> parser) (Opts.header (Text.unpack header))
|
||||||
|
|
||||||
newtype ParameterName = ParameterName { getParameterName :: Text }
|
newtype ArgName = ArgName { getArgName :: Text }
|
||||||
deriving (IsString)
|
deriving (IsString)
|
||||||
|
|
||||||
newtype LongName = LongName { getLongName :: Text }
|
newtype LongName = LongName { getLongName :: Text }
|
||||||
|
@ -54,33 +54,32 @@ switch longName helpMessage
|
||||||
<> foldMap (Opts.short . fst) (Text.uncons (getLongName longName))
|
<> foldMap (Opts.short . fst) (Text.uncons (getLongName longName))
|
||||||
<> foldMap (Opts.help . Text.unpack . getHelpMessage) helpMessage
|
<> foldMap (Opts.help . Text.unpack . getHelpMessage) helpMessage
|
||||||
|
|
||||||
parameter
|
arg :: (Text -> Maybe a)
|
||||||
:: (Text -> Maybe a)
|
-> ArgName
|
||||||
-> ParameterName
|
|
||||||
-> Optional HelpMessage
|
-> Optional HelpMessage
|
||||||
-> Parser a
|
-> Parser a
|
||||||
parameter paramRead paramName helpMessage
|
arg argParse argName helpMessage
|
||||||
= Opts.argument (parameterReadToReadM paramRead)
|
= Opts.argument (argParseToReadM argParse)
|
||||||
$ Opts.metavar (Text.unpack (getParameterName paramName))
|
$ Opts.metavar (Text.unpack (getArgName argName))
|
||||||
<> foldMap (Opts.help . Text.unpack . getHelpMessage) helpMessage
|
<> foldMap (Opts.help . Text.unpack . getHelpMessage) helpMessage
|
||||||
|
|
||||||
parameterAuto :: Read a => ParameterName -> Optional HelpMessage -> Parser a
|
argRead :: Read a => ArgName -> Optional HelpMessage -> Parser a
|
||||||
parameterAuto = parameter (readMaybe . Text.unpack)
|
argRead = arg (readMaybe . Text.unpack)
|
||||||
|
|
||||||
parameterText :: ParameterName -> Optional HelpMessage -> Parser Text
|
argText :: ArgName -> Optional HelpMessage -> Parser Text
|
||||||
parameterText = parameter Just
|
argText = arg Just
|
||||||
|
|
||||||
parameterInteger :: ParameterName -> Optional HelpMessage -> Parser Integer
|
argInteger :: ArgName -> Optional HelpMessage -> Parser Integer
|
||||||
parameterInteger = parameterAuto
|
argInteger = argRead
|
||||||
|
|
||||||
parameterInt :: ParameterName -> Optional HelpMessage -> Parser Int
|
argInt :: ArgName -> Optional HelpMessage -> Parser Int
|
||||||
parameterInt = parameterAuto
|
argInt = argRead
|
||||||
|
|
||||||
parameterDouble :: ParameterName -> Optional HelpMessage -> Parser Double
|
argDouble :: ArgName -> Optional HelpMessage -> Parser Double
|
||||||
parameterDouble = parameterAuto
|
argDouble = argRead
|
||||||
|
|
||||||
parameterReadToReadM :: (Text -> Maybe a) -> Opts.ReadM a
|
argParseToReadM :: (Text -> Maybe a) -> Opts.ReadM a
|
||||||
parameterReadToReadM f = do
|
argParseToReadM f = do
|
||||||
s <- Opts.readerAsk
|
s <- Opts.readerAsk
|
||||||
case f (Text.pack s) of
|
case f (Text.pack s) of
|
||||||
Just a -> return a
|
Just a -> return a
|
||||||
|
|
Loading…
Reference in a new issue