{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE DeriveGeneric #-}
module Database.PostgreSQL.Simple.Options where
import GHC.Generics (Generic)
import Data.Typeable (Typeable)
import Data.Maybe (Maybe, maybeToList)
data Options = Options
{ oHost :: Maybe String
, oHostaddr :: Maybe String
, oPort :: Maybe Int
, oUser :: Maybe String
, oPassword :: Maybe String
, oDbname :: String
, oConnectTimeout :: Maybe Int
, oClientEncoding :: Maybe String
, oOptions :: Maybe String
, oFallbackApplicationName :: Maybe String
, oKeepalives :: Maybe Int
, oKeepalivesIdle :: Maybe Int
, oKeepalivesCount :: Maybe Int
, oSslmode :: Maybe String
, oRequiressl :: Maybe Int
, oSslcompression :: Maybe Int
, oSslcert :: Maybe String
, oSslkey :: Maybe String
, oSslrootcert :: Maybe String
, oRequirepeer :: Maybe String
, oKrbsrvname :: Maybe String
, oGsslib :: Maybe String
, oService :: Maybe String
} deriving (Show, Eq, Read, Ord, Generic, Typeable)
toArgs :: Options -> [String]
toArgs Options {..} =
[ "--dbname=" <> oDbname
]
++ (("--host=" <>) <$> maybeToList oHost)
++ (("--username=" <>) <$> maybeToList oUser)
++ (("--password=" <>) <$> maybeToList oPassword)
++ ((\x -> "--host=" <> show x) <$> maybeToList oPort)