Rename Parameter to Arg

This commit is contained in:
Index Int 2015-06-28 06:44:33 +03:00
parent ecb48e142a
commit 5d9f1e3b39

View file

@ -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