diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-04-21 17:42:10 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-04-21 17:52:18 -0400 |
commit | 5572dbc8289de934e9ee5bc3f74a0f98365ce3e5 (patch) | |
tree | 9c1bba1a5d40748f72e13be788c29ed24dc3dd28 /CmdLine.hs | |
parent | 360d8ac4601dc5b48c22eeb93eb1853cee99e6c9 (diff) | |
download | debug-me-5572dbc8289de934e9ee5bc3f74a0f98365ce3e5.tar.gz |
initial http server
Incomplete, but the client is able to connect and send messages which
get logged.
Split up debug-me.hs into Role/*
Switched from cereal to binary, since websockets operate on lazy
ByteStrings, and using cereal would involve a copy on every receive.
This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
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 |