]> woffs.de Git - fd/haskell-amqp-utils.git/blobdiff - agitprop.hs
removeSentFileIfRequested
[fd/haskell-amqp-utils.git] / agitprop.hs
index e2d45a0d5b466a33a4420e156527ade4c101d7c6..9715e6944180cad41fce6c52836acced70ec3506 100644 (file)
@@ -22,6 +22,7 @@ import           Network.AMQP.Utils.Connection
 import           Network.AMQP.Utils.Helpers
 import           Network.AMQP.Utils.Options
 import           Paths_amqp_utils              (version)
+import           System.Directory              (removeFile)
 import           System.Environment
 import           System.Exit
 import           System.INotify
@@ -145,7 +146,7 @@ handleFile f [] x =
     (\e -> printparam "exception in handleFile" (e :: X.SomeException))
 
 -- | Publish one message with our settings
-publishOneMsg' :: Channel -> Args -> Maybe String -> BL.ByteString -> IO ()
+publishOneMsg' :: Channel -> Args -> Maybe FilePath -> BL.ByteString -> IO ()
 publishOneMsg' c a fn f = do
   printparam "sending" fn
   (mtype, mencoding) <-
@@ -181,9 +182,13 @@ publishOneMsg' c a fn f = do
       , msgHeaders = substheader (fnheader a) fn $ msgheader a
       } >>=
     printparam "sent"
+  removeSentFileIfRequested (removeSentFile a) fn
   where
     substheader ::
          [String] -> Maybe String -> Maybe FieldTable -> Maybe FieldTable
     substheader (s:r) (Just fname) old =
       substheader r (Just fname) (addheader old (s ++ "=" ++ fname))
     substheader _ _ old = old
+    removeSentFileIfRequested False _           = return ()
+    removeSentFileIfRequested True Nothing      = return ()
+    removeSentFileIfRequested True (Just fname) = printparam "removing" fname >> removeFile fname
don't click here