diff options
Diffstat (limited to 'CmdLine.hs')
-rw-r--r-- | CmdLine.hs | 32 |
1 files changed, 24 insertions, 8 deletions
@@ -9,10 +9,19 @@ data CmdLine = CmdLine } data Mode - = Test - | Graphviz GraphvizOpts - | Replay ReplayOpts - | Server ServerOpts + = UserMode UserOpts + | DeveloperMode DeveloperOpts + | GraphvizMode GraphvizOpts + | ReplayMode ReplayOpts + | ServerMode ServerOpts + +data UserOpts = UserOpts + { + } + +data DeveloperOpts = DeveloperOpts + { debugUrl :: String + } data GraphvizOpts = GraphvizOpts { graphvizLogFile :: FilePath @@ -32,10 +41,11 @@ parseCmdLine :: Parser CmdLine parseCmdLine = CmdLine <$> parseMode parseMode :: Parser Mode -parseMode = (Graphviz <$> parsegraphviz) - <|> (Replay <$> parsereplay) - <|> (Server <$> parseserver) - <|> pure Test -- default, so last +parseMode = (GraphvizMode <$> parsegraphviz) + <|> (ReplayMode <$> parsereplay) + <|> (ServerMode <$> parseserver) + <|> (DeveloperMode <$> parsedeveloper) + <|> pure (UserMode (UserOpts {})) -- default, so last where parsegraphviz = GraphvizOpts <$> option str @@ -66,6 +76,12 @@ parseMode = (Graphviz <$> parsegraphviz) <> showDefault <> help "port for server to listen on" ) + parsedeveloper = DeveloperOpts + <$> option str + ( long "debug" + <> metavar "url" + <> help "debug a user on the given url" + ) getCmdLine :: IO CmdLine getCmdLine = execParser opts |