module Main
( main
) where
import qualified Data.Text as Text
import Rollbar.Client
import System.Environment (getArgs)
-- To load this example using Cabal, run:
--
-- ROLLBAR_TOKEN=<...> cabal repl --flags example client-example
--
-- Or, if using Stack, replace the Cabal part with:
--
-- stack ghci --flag rollbar-client:example rollbar-client:exe:client-example
--
-- You can then test creating a Rollbar item. If there are no arguments, the
-- example uses the 'withRollbar' function, which automatically creates a
-- Rollbar item after catching an exception:
--
-- >>> :main
-- *** Exception: Boom
-- CallStack (from HasCallStack):
-- error, called at .../rollbar-haskell/rollbar-client/example/Main.hs:39:30 in main:Main
--
-- If there are arguments, the example uses the 'runRollbar' function, which
-- allows us to create and send our own Rollbar items. In this case, we send
-- the arguments as message and change the level to warning:
--
-- >>> :main Warning!
-- ItemId "55c3e83084d943d6af3bf940e80513e1"
main :: IO ()
main = do
settings <- readSettings "rollbar.yaml"
args <- getArgs
case args of
[] ->
withRollbar settings $ error "Boom"
_ -> do
itemId <-
runRollbar settings $ do
let body = Text.pack (unwords args)
item <- mkItem (PayloadMessage (Message body mempty))
createItem item { itemLevel = Just LevelWarning }
print itemId