arbor-postgres-0.0.1: src/Arbor/Postgres/Config.hs
{-# LANGUAGE ApplicativeDo #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE RecordWildCards #-}
module Arbor.Postgres.Config where
import Arbor.Postgres.Password
import Data.Semigroup ((<>))
import Data.Text (Text)
import GHC.Generics
import Options.Applicative
data PostgresConfig = PostgresConfig
{ host :: Text
, database :: Text
, user :: Text
, password :: Maybe Password
} deriving (Eq, Show, Generic)
optsPostgresConfig :: String -> Parser PostgresConfig
optsPostgresConfig prefix = do
host <- strOption
( long (prefix <> "-db-host")
<> metavar "DB_HOST"
<> help "The postgres hostname"
)
database <- strOption
( long (prefix <> "-db-name")
<> metavar "DB_NAME"
<> help "The postgres db name"
)
user <- strOption
( long (prefix <> "-db-user")
<> metavar "DB_USER"
<> help "The postgres user"
)
password <- optional $ Password <$> strOption
( long (prefix <> "-db-password")
<> metavar "DB_PASSWORD"
<> help "The postgres password"
)
return PostgresConfig {..}