roller-0.1.2: Roller/CLI.hs
module Roller.CLI (
CLI(..)
, withOpts
) where
import Options.Applicative hiding (Const)
import Control.Applicative
type CLI a = Bool -> Int -> [String] -> a
withOpts :: CLI a -> IO a
withOpts f = execParser . info (helper <*> handleOpts) $ infoMod
where
handleOpts =
f <$> switch ( long "verbose"
<> short 'v'
<> help "List out each roll")
<*> option auto ( long "nrolls"
<> value 1
<> short 'n'
<> help "Number of times to roll the expression")
<*> some (argument str (metavar "EXPR.." <> help "Dice expressions"))
infoMod = fullDesc <> progDesc "Roll some dice"