diff options
Diffstat (limited to 'CmdLine.hs')
-rw-r--r-- | CmdLine.hs | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -16,7 +16,7 @@ data Mode | ServerMode ServerOpts data UserOpts = UserOpts - { + { cmdToRun :: Maybe (String, [String]) } data DeveloperOpts = DeveloperOpts @@ -41,12 +41,16 @@ parseCmdLine :: Parser CmdLine parseCmdLine = CmdLine <$> parseMode parseMode :: Parser Mode -parseMode = (GraphvizMode <$> parsegraphviz) +parseMode = (UserMode <$> parseuser) + <|> (DeveloperMode <$> parsedeveloper) <|> (ReplayMode <$> parsereplay) + <|> (GraphvizMode <$> parsegraphviz) <|> (ServerMode <$> parseserver) - <|> (DeveloperMode <$> parsedeveloper) - <|> pure (UserMode (UserOpts {})) -- default, so last where + parseuser = UserOpts + <$> optional ((,) + <$> strArgument (metavar "cmd") + <*> many (strArgument (metavar "opts"))) parsegraphviz = GraphvizOpts <$> option str ( long "graphviz" |