]> woffs.de Git - fd/haskell-amqp-utils.git/blob - agitprop.hs
releasing 0.3.1.0: agitprop, a publisher
[fd/haskell-amqp-utils.git] / agitprop.hs
1 {-# LANGUAGE OverloadedStrings #-}
2
3 import           Paths_amqp_utils           ( version )
4 import           Data.Version               ( showVersion )
5 import           System.Environment
6 import qualified Data.Text                  as T
7 import           Network.AMQP
8 import           Network.AMQP.Utils.Options
9 import           Network.AMQP.Utils.Helpers
10 import           Network.AMQP.Utils.Connection
11 import qualified Data.ByteString.Lazy.Char8 as BL
12 main :: IO ()
13 main = do
14     hr "starting"
15     --  tid <- myThreadId
16     args <- getArgs >>= parseargs "agitprop"
17     printparam' "client version" $ "amqp-utils " ++ (showVersion version)
18     messageFile <- BL.readFile (inputFile args)
19     (conn, chan) <- connect args
20     let publishOneMsg f = publishMsg chan
21                                      (T.pack $ currentExchange args)
22                                      (T.pack $ rKey args)
23                                      newMsg { msgBody = f
24                                             , msgDeliveryMode = Just Persistent
25                                             }
26     _ <- if (lineMode args)
27          then mapM_ publishOneMsg (BL.lines messageFile)
28          else publishOneMsg messageFile >> return ()
29
30     closeConnection conn