on 877cb21 help sign in
hakyll/src/Hakyll/Core/Provider.hs
46 lines 1.5 kB history raw
1--------------------------------------------------------------------------------
2-- | This module provides an wrapper API around the file system which does some
3-- caching.
4module Hakyll.Core.Provider
5 ( -- * Constructing resource providers
6 Provider
7 , newProvider
9 -- * Querying resource properties
10 , resourceList
11 , resourceExists
12 , resourceModified
13 , resourceModificationTime
15 -- * Access to raw resource content
16 , resourceString
17 , resourceLBS
19 -- * Access to metadata and body content
20 , resourceMetadata
21 , resourceBody
22 ) where
25--------------------------------------------------------------------------------
26import Hakyll.Core.Identifier
27import Hakyll.Core.Metadata
28import Hakyll.Core.Provider.Internal
29import qualified Hakyll.Core.Provider.MetadataCache as Internal
30import Hakyll.Core.Provider.Modified
33--------------------------------------------------------------------------------
34-- | Wrapper to ensure metadata cache is invalidated if necessary
35resourceMetadata :: Provider -> Identifier -> IO Metadata
36resourceMetadata rp r = do
37 _ <- resourceModified rp r
38 Internal.resourceMetadata rp r
41--------------------------------------------------------------------------------
42-- | Wrapper to ensure metadata cache is invalidated if necessary
43resourceBody :: Provider -> Identifier -> IO String
44resourceBody rp r = do
45 _ <- resourceModified rp r
46 Internal.resourceBody rp r