on master help sign in
add host and port command line args for daemon
bda2cfcAgentM
ProjectM36/Daemon/Config.hs+7−2
@@ -2,9 +2,14 @@ module ProjectM36.Daemon.Config where
2import ProjectM36.Client
2import ProjectM36.Client
3
3
4data DaemonConfig = DaemonConfig { persistenceStrategy :: PersistenceStrategy,
4data DaemonConfig = DaemonConfig { persistenceStrategy :: PersistenceStrategy,
5− databaseName :: DatabaseName
5+ databaseName :: DatabaseName,
6+ bindHost :: Hostname,
7+ bindPort :: Port
6 }
8 }
7
9
8defaultDaemonConfig :: DaemonConfig
10defaultDaemonConfig :: DaemonConfig
9defaultDaemonConfig = DaemonConfig { persistenceStrategy = NoPersistence,
11defaultDaemonConfig = DaemonConfig { persistenceStrategy = NoPersistence,
10− databaseName = "base" }
12+ databaseName = "base",
13+ bindHost = "127.0.0.1",
14+ bindPort = 6543
15+ }
ProjectM36/Daemon/ParseArgs.hs+13−1
@@ -5,7 +5,7 @@ import Options.Applicative
5import ProjectM36.Daemon.Config
5import ProjectM36.Daemon.Config
6
6
7parseArgs :: Parser DaemonConfig
7parseArgs :: Parser DaemonConfig
8−parseArgs = DaemonConfig <$> parsePersistenceStrategy <*> parseDatabaseName
8+parseArgs = DaemonConfig <$> parsePersistenceStrategy <*> parseDatabaseName <*> parseHostname <*> parsePort
9
9
10parsePersistenceStrategy :: Parser PersistenceStrategy
10parsePersistenceStrategy :: Parser PersistenceStrategy
11parsePersistenceStrategy = CrashSafePersistence <$> (dbdirOpt <* fsyncOpt) <|>
11parsePersistenceStrategy = CrashSafePersistence <$> (dbdirOpt <* fsyncOpt) <|>
@@ -25,6 +25,18 @@ parseDatabaseName :: Parser DatabaseName
25parseDatabaseName = strOption (short 'n' <>
25parseDatabaseName = strOption (short 'n' <>
26 long "database" <>
26 long "database" <>
27 metavar "DATABASE_NAME")
27 metavar "DATABASE_NAME")
28+
29+parseHostname :: Parser Hostname
30+parseHostname = strOption (short 'h' <>
31+ long "hostname" <>
32+ metavar "HOST_NAME" <>
33+ value (bindHost defaultDaemonConfig))
34+
35+parsePort :: Parser Port
36+parsePort = option auto (short 'p' <>
37+ long "port" <>
38+ metavar "PORT_NUMBER" <>
39+ value (bindPort defaultDaemonConfig))
28
40
29parseConfig :: IO DaemonConfig
41parseConfig :: IO DaemonConfig
30parseConfig = execParser $ info parseArgs idm
42parseConfig = execParser $ info parseArgs idm