module Main where
import System.IO
import System.Exit (die)
import Hasql.Connection
import Hasql.Connection.Setting
import Hasql.Connection.Setting.Connection
import Hasql.Notifications
main :: IO ()
main = do
hSetBuffering stdout NoBuffering
hSetBuffering stderr NoBuffering
dbOrError <- acquire [ connection $ string "postgres://localhost/db_name" ]
case dbOrError of
Right db -> do
let channelToListen = toPgIdentifier "sample-channel"
listen db channelToListen
waitForNotifications (\channel _ -> print $ "Just got notification on channel " <> channel) db
_ -> die "Could not open database connection"