IPv6DB-0.2.1: app/Options.hs
module Options where
import Data.ByteString
import Data.Monoid ((<>))
import Options.Applicative
data Options =
Options
{ appHost :: String
, appPort :: Int
, logFile :: String
, redisHost :: String
, redisPort :: Integer
, redisDatabase :: Integer
, redisAuth :: Maybe ByteString
}
opts :: ParserInfo Options
opts = info (options <**> helper)
( fullDesc
<> progDesc "RESTful Web Service for IPv6 related data"
<> header "IPv6DB v0.2.0 APIv1, (c) Michel Boucey 2017" )
options :: Parser Options
options =
Options
<$>
strOption
( short 'h'
<> long "host"
<> help "Alternative host"
<> showDefault
<> value "::" )
<*>
option auto
( short 'p'
<> long "port"
<> help "Alternative listening port"
<> showDefault
<> value 4446 )
<*>
strOption
( short 'l'
<> long "log-file"
<> help "Log file"
<> showDefault
<> value "/var/log/ipv6db.log" )
<*>
strOption
( short 'o'
<> long "redis-host"
<> help "Redis host"
<> showDefault
<> value "localhost" )
<*>
option auto
( short 'r'
<> long "redis-port"
<> help "Redis listening port"
<> showDefault
<> value 6379 )
<*>
option auto
( short 'd'
<> long "redis-database"
<> help "Redis database"
<> showDefault
<> value 0 )
<*>
option auto
( short 'a'
<> long "redis-auth"
<> help "Redis authentication password"
<> value Nothing )