on master help sign in
add help option to executables

resolves #229

commite424dd5e232b857f4596909209f1582a15a96917 authorAgentM <agentm@themactionfaction.com> dateSat 12 Jan 2019, 17:02 (8 years ago) parentfa6a927
2 files changed+22−12
src/bin/TutorialD/tutd.hs+1−1 src/lib/ProjectM36/Server/ParseArgs.hs+21−11
src/bin/TutorialD/tutd.hs+1−1
@@ -45,7 +45,7 @@ parseTutDExec = optional $ strOption (long "exec-tutd" <>
4545 )
4646
4747opts :: ParserInfo InterpreterConfig
48−opts = info parseArgs idm
48+opts = info (parseArgs <**> helpOption) idm
4949
5050connectionInfoForConfig :: InterpreterConfig -> ConnectionInfo
5151connectionInfoForConfig (LocalInterpreterConfig pStrategy _ _ ghcPkgPaths _) = InProcessConnectionInfo pStrategy outputNotificationCallback ghcPkgPaths
src/lib/ProjectM36/Server/ParseArgs.hs+21−11
@@ -6,15 +6,15 @@ import ProjectM36.Server.Config
66import Data.Monoid
77
88parseArgsWithDefaults :: ServerConfig -> Parser ServerConfig
9−parseArgsWithDefaults defaults = ServerConfig <$>
10− parsePersistenceStrategy <*>
11− parseCheckFS <*>
12− parseDatabaseName <*>
13− parseHostname (bindHost defaults) <*>
14− parsePort (bindPort defaults) <*>
15− many parseGhcPkgPath <*>
16− parseTimeout (perRequestTimeout defaults) <*>
17− pure False
9+parseArgsWithDefaults defaults = ServerConfig <$>
10+ parsePersistenceStrategy <*>
11+ parseCheckFS <*>
12+ parseDatabaseName <*>
13+ parseHostname (bindHost defaults) <*>
14+ parsePort (bindPort defaults) <*>
15+ many parseGhcPkgPath <*>
16+ parseTimeout (perRequestTimeout defaults) <*>
17+ parseTestMode
1818
1919parsePersistenceStrategy :: Parser PersistenceStrategy
2020parsePersistenceStrategy = CrashSafePersistence <$> (dbdirOpt <* fsyncOpt) <|>
@@ -29,6 +29,9 @@ parsePersistenceStrategy = CrashSafePersistence <$> (dbdirOpt <* fsyncOpt) <|>
2929 fsyncOpt = switch (short 'f' <>
3030 long "fsync" <>
3131 help "Fsync all new transactions.")
32+
33+parseTestMode :: Parser Bool
34+parseTestMode = flag True False (long "test-mode" <> hidden)
3235
3336parseCheckFS :: Parser Bool
3437parseCheckFS = flag True False (long "disable-fscheck" <>
@@ -38,7 +41,7 @@ parseDatabaseName :: Parser DatabaseName
3841parseDatabaseName = strOption (short 'n' <>
3942 long "database" <>
4043 metavar "DATABASE_NAME")
41−
44+
4245parseHostname :: Hostname -> Parser Hostname
4346parseHostname defHostname = strOption (short 'h' <>
4447 long "hostname" <>
@@ -64,4 +67,11 @@ parseConfig :: IO ServerConfig
6467parseConfig = parseConfigWithDefaults defaultServerConfig
6568
6669parseConfigWithDefaults :: ServerConfig -> IO ServerConfig
67−parseConfigWithDefaults defaults = execParser (info (parseArgsWithDefaults defaults) idm)
70+parseConfigWithDefaults defaults = execParser (info (parseArgsWithDefaults defaults <**> helpOption) idm)
71+
72+
73+helpOption :: Parser (a -> a)
74+helpOption = abortOption ShowHelpText $ mconcat
75+ [ long "help"
76+ , help "Show this help text"
77+ , hidden ]