diff options
Diffstat (limited to 'Biz')
-rw-r--r-- | Biz/Cli.hs | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -1,3 +1,5 @@ +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE NoImplicitPrelude #-} @@ -33,14 +35,16 @@ data Plan cfg = Plan main :: Plan cfg -> IO () main Plan {..} = Environment.getArgs - +> Docopt.parseArgsOrExit help - +> \args -> - if args `has` Docopt.command "test" - then Test.run test - else - if args `has` Docopt.longOption "help" || args `has` Docopt.shortOption 'h' - then Docopt.exitWithUsage help - else move args + /> Docopt.parseArgs help + +> \case + Left err -> panic <| show err + Right args -> + if args `has` Docopt.command "test" + then Test.run test + else + if args `has` Docopt.longOption "help" || args `has` Docopt.shortOption 'h' + then Docopt.exitWithUsage help + else move args has :: Docopt.Arguments -> Docopt.Option -> Bool has = Docopt.isPresent |