on master help sign in
Add resourceDigest function
bc92f7fJasper Van der Jeugt
src/Hakyll/Core/ResourceProvider.hs+12−1
@@ -4,11 +4,17 @@
4--
4--
5module Hakyll.Core.ResourceProvider
5module Hakyll.Core.ResourceProvider
6 ( ResourceProvider (..)
6 ( ResourceProvider (..)
7+ , resourceDigest
7 ) where
8 ) where
8
9
9−import Hakyll.Core.Identifier
10+import Control.Monad ((<=<))
11+import Data.Word (Word8)
10
12
11import qualified Data.ByteString.Lazy as LB
13import qualified Data.ByteString.Lazy as LB
14+import OpenSSL.Digest.ByteString.Lazy (digest)
15+import OpenSSL.Digest (MessageDigest (MD5))
16+
17+import Hakyll.Core.Identifier
12
18
13-- | A value responsible for retrieving and listing resources
19-- | A value responsible for retrieving and listing resources
14--
20--
@@ -20,3 +26,8 @@ data ResourceProvider = ResourceProvider
20 , -- | Retrieve a certain resource as lazy bytestring
26 , -- | Retrieve a certain resource as lazy bytestring
21 resourceLazyByteString :: Identifier -> IO LB.ByteString
27 resourceLazyByteString :: Identifier -> IO LB.ByteString
22 }
28 }
29+
30+-- | Retrieve a digest for a given resource
31+--
32+resourceDigest :: ResourceProvider -> Identifier -> IO [Word8]
33+resourceDigest provider = digest MD5 <=< resourceLazyByteString provider