summaryrefslogtreecommitdiffhomepage
path: root/CmdLine.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2017-04-21 21:23:05 -0400
committerJoey Hess <joeyh@joeyh.name>2017-04-21 21:23:05 -0400
commit194272f2f40a3d2aeee930d502379a7526e0d28d (patch)
tree3cace14f5249a23d52919844c183630f75826f0f /CmdLine.hs
parentfe3c26650bb1e267cce756831fdb9cde230cafd5 (diff)
downloaddebug-me-194272f2f40a3d2aeee930d502379a7526e0d28d.tar.gz
improve selection of command to run
Diffstat (limited to 'CmdLine.hs')
-rw-r--r--CmdLine.hs12
1 files changed, 8 insertions, 4 deletions
diff --git a/CmdLine.hs b/CmdLine.hs
index 2b496d6..8fd5c9f 100644
--- a/CmdLine.hs
+++ b/CmdLine.hs
@@ -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"