]> woffs.de Git - fd/haskell-amqp-utils.git/commitdiff
fix exception handling
authorFrank Doepper <[email protected]>
Mon, 1 May 2023 15:56:23 +0000 (17:56 +0200)
committerFrank Doepper <[email protected]>
Mon, 1 May 2023 16:00:31 +0000 (18:00 +0200)
agitprop.hs
konsum.hs

index dcdb24c42991bae02bb1dabc06082bf98bd925ef..44984a3c68c3fd6218c6a4f16e36594ce889b8ff 100644 (file)
@@ -76,11 +76,12 @@ main = do
        then do
 #if linux_HOST_OS
          wds <- mapM (watchHotfolder args publishOneMsg) (inputFiles args)
-         sleepingBeauty >>= printparam "exception"
-         forM_ wds (\(wd,folder) -> do
-           removeWatch wd
-           printparam "END watching" folder
-           )
+         sleepingBeauty >>= (\x -> do
+           forM_ wds (\(wd,folder) -> do
+             removeWatch wd
+             printparam "END watching" folder
+             )
+           X.throw x)
 #else
          X.throw (X.ErrorCall "ERROR: watching a directory is only supported in Linux")
 #endif
index b777e14a508c69bfd845d44a6447bb7c9f34ecf3..2b172ae7b027ca30de385895dac86b016654c2ec 100644 (file)
--- a/konsum.hs
+++ b/konsum.hs
@@ -3,17 +3,17 @@
 -- SPDX-License-Identifier: GPL-3.0-only
 
 -- generic amqp consumer
-import           Control.Concurrent
-import qualified Control.Exception             as X
-import qualified Data.Text                     as T
-import           Data.Time
-import           Data.Version                  (showVersion)
-import           Network.AMQP
-import           Network.AMQP.Utils.Connection
-import           Network.AMQP.Utils.Helpers
-import           Network.AMQP.Utils.Options
-import           Paths_amqp_utils              (version)
-import           System.Environment
+import Control.Concurrent
+import qualified Control.Exception as X
+import qualified Data.Text as T
+import Data.Time
+import Data.Version (showVersion)
+import Network.AMQP
+import Network.AMQP.Utils.Connection
+import Network.AMQP.Utils.Helpers
+import Network.AMQP.Utils.Options
+import Paths_amqp_utils (version)
+import System.Environment
 
 main :: IO ()
 main = do
@@ -53,9 +53,11 @@ main = do
   printparam "send acks" $ ack args
   printparam "requeue if rejected" $ (ack args) && (requeuenack args)
   hr "entering main loop"
-  sleepingBeauty >>= printparam "exception"
-  closeConnection conn
-  hr "connection closed"
+  sleepingBeauty >>=
+    (\x -> do
+       closeConnection conn
+       hr "connection closed"
+       X.throw x)
 
 -- | exclusive temp queue
 tempQueue :: Channel -> String -> [(String, String)] -> IO T.Text
don't click here