module Hasql.Postgres.Options where
import BasePrelude
import Options.Applicative
import qualified Hasql.Postgres as HP
settings :: Maybe String -> Parser HP.Settings
settings prefix =
HP.ParamSettings <$> host <*> port <*> user <*> password <*> database
where
host =
fmap fromString $ strOption $
long (applyPrefix "host") <>
value "127.0.0.1" <>
showDefault <>
help "Server host"
port =
option auto $
long (applyPrefix "port") <>
value 5432 <>
showDefault <>
help "Server port"
user =
fmap fromString $ strOption $
long (applyPrefix "user") <>
value "postgres" <>
showDefault <>
help "Username"
password =
fmap fromString $ strOption $
long (applyPrefix "password") <>
value "" <>
showDefault <>
help "Password"
database =
fmap fromString $ strOption $
long (applyPrefix "database") <>
value "" <>
showDefault <>
help "Default database name"
applyPrefix s =
maybe s (<> ("-" <> s)) prefix