rdkafka-hs-1.1.0.0: example/Main.hs
module Main (main) where
import ConsumerExample
import Data.Text qualified as Text
import Kafka.Consumer qualified as C
import Kafka.Producer qualified as P
import ProducerExample
import System.Environment (getArgs)
import System.Exit (die)
main :: IO ()
main = do
args <- getArgs
case args of
[] -> run runProducerExample runConsumerExample
[broker, topic, group] ->
run
(runProducerExampleWith (producerProps <> P.brokersList [P.BrokerAddress (Text.pack broker)]) (P.TopicName (Text.pack topic)))
(runConsumerExampleWith (consumerProps <> C.brokersList [C.BrokerAddress (Text.pack broker)] <> C.groupId (C.ConsumerGroupId (Text.pack group))) (C.topics [C.TopicName (Text.pack topic)] <> C.offsetReset C.Earliest))
_ -> die "Usage: kafka-client-example [BROKER TOPIC GROUP]"
where
run :: IO () -> IO () -> IO ()
run producer consumer = do
putStrLn "Running producer example..."
producer
putStrLn "Running consumer example..."
consumer
putStrLn "Ok."