@@ -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 ]