module DataSource (connect) where import Data.Maybe (fromMaybe) import Database.HDBC.PostgreSQL (Connection, connectPostgreSQL) import System.Environment (lookupEnv) connect :: IO Connection connect = do host <- getEnvDef "PURE_HOST" "127.0.0.1" port <- getEnvDef "PURE_PORT" "5432" user <- getEnvDef "PURE_USER" "postgres" password <- getEnvDef "PURE_PASSWORD" "" database <- getEnvDef "PURE_DATABASE" "postgres" connectPostgreSQL $ "host='" ++ host ++ "' port='" ++ port ++ "'user='" ++ user ++"' password = '" ++ password ++ "' dbname = '" ++ database ++ "'" getEnvDef :: String -> String -> IO String getEnvDef name value = fromMaybe value <$> lookupEnv name