summaryrefslogtreecommitdiffhomepage
path: root/CmdLine.hs
diff options
context:
space:
mode:
Diffstat (limited to 'CmdLine.hs')
-rw-r--r--CmdLine.hs32
1 files changed, 24 insertions, 8 deletions
diff --git a/CmdLine.hs b/CmdLine.hs
index 2c71327..db3c749 100644
--- a/CmdLine.hs
+++ b/CmdLine.hs
@@ -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