diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-04-21 21:23:05 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-04-21 21:23:05 -0400 |
commit | 194272f2f40a3d2aeee930d502379a7526e0d28d (patch) | |
tree | 3cace14f5249a23d52919844c183630f75826f0f /CmdLine.hs | |
parent | fe3c26650bb1e267cce756831fdb9cde230cafd5 (diff) | |
download | debug-me-194272f2f40a3d2aeee930d502379a7526e0d28d.tar.gz |
improve selection of command to run
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" |