{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE NoImplicitPrelude #-} -- : dep docopt module Biz.Cli ( Plan (..), main, Docopt.Docopt (..), Docopt.Arguments, Docopt.argument, Docopt.docopt, Docopt.getAllArgs, ) where import Alpha import qualified System.Console.Docopt as Docopt import qualified System.Environment as Environment data Plan = Plan { help :: Docopt.Docopt, move :: Docopt.Arguments -> IO (), test :: Docopt.Arguments -> IO () } main :: Plan -> IO () main Plan {..} = Environment.getArgs >>= Docopt.parseArgsOrExit help >>= \args -> if args `has` Docopt.longOption "test" then test args else move args has :: Docopt.Arguments -> Docopt.Option -> Bool has = Docopt.isPresent