git.iko.soy/typeable/pandoc
on master help sign in
MediaBag: put extractMediaBag into MonadIO.
commitdcccf65f3303475d9d5fdd8d49226190b9d11089 authorJohn MacFarlane <jgm@berkeley.edu> dateSat 10 Dec 2016, 12:24 (10 years ago) parentcf7d7f5
1 file changed+7−3
src/Text/Pandoc/MediaBag.hs+7−3
src/Text/Pandoc/MediaBag.hs+7−3
@@ -42,6 +42,7 @@ import System.Directory (createDirectoryIfMissing)
4242import qualified Data.Map as M
4343import qualified Data.ByteString.Lazy as BL
4444import Control.Monad (when)
45+import Control.Monad.Trans (MonadIO(..))
4546import Text.Pandoc.MIME (MimeType, getMimeTypeDef)
4647import qualified Text.Pandoc.UTF8 as UTF8
4748import Data.Maybe (fromMaybe)
@@ -88,11 +89,14 @@ mediaDirectory (MediaBag mediamap) =
8889
8990-- | Extract contents of MediaBag to a given directory. Print informational
9091-- messages if 'verbose' is true.
91−extractMediaBag :: Bool
92+-- TODO: eventually we may want to put this into PandocMonad
93+-- In PandocPure, it could write to the fake file system...
94+extractMediaBag :: MonadIO m
95+ => Bool
9296 -> FilePath
9397 -> MediaBag
94− -> IO ()
95−extractMediaBag verbose dir (MediaBag mediamap) = do
98+ -> m ()
99+extractMediaBag verbose dir (MediaBag mediamap) = liftIO $ do
96100 sequence_ $ M.foldWithKey
97101 (\fp (_ ,contents) ->
98102 ((writeMedia verbose dir (Posix.joinPath fp, contents)):)) [] mediamap