packages feed

postgresql-config-0.1.0: examples/Main.hs

module Main where

import Control.Monad ( void )
import Data.Monoid
import Data.String
import Data.Yaml
import Database.PostgreSQL.Config
import Database.PostgreSQL.Simple
import System.Environment



main :: IO ()
main = do
    conf <- decodeFile "pgconfig.yml"
            >>= maybe (fail "Oups!") return
    pool <- getArgs >>= \case
      [] -> createPGPool conf
      [spath] ->
        let callback con =
              void
              $ execute_ con
              $ "SET search_path TO " <> fromString spath
        in createPGPoolWithCallback conf callback
      _ -> fail "wrong arguments"
    putStrLn "Pool created"
    pingPGPool pool
    putStrLn "Connection performed"