hakyll/src/Hakyll/Core/Resource/Provider.hs
2012-11-08 12:45:26 +01:00

45 lines
1.5 KiB
Haskell

--------------------------------------------------------------------------------
-- | This module provides an wrapper API around the file system which does some
-- caching.
module Hakyll.Core.Resource.Provider
( -- * Constructing resource providers
ResourceProvider
, newResourceProvider
-- * Querying resource properties
, resourceList
, resourceExists
, resourceModified
, resourceModificationTime
-- * Access to raw resource content
, resourceString
, resourceLBS
-- * Access to metadata and body content
, resourceMetadata
, resourceBody
) where
--------------------------------------------------------------------------------
import Hakyll.Core.Resource
import qualified Hakyll.Core.Resource.MetadataCache as Internal
import Hakyll.Core.Resource.Modified
import Hakyll.Core.Resource.Provider.Internal
--------------------------------------------------------------------------------
-- | Wrapper to ensure metadata cache is invalidated if necessary
resourceMetadata :: ResourceProvider -> Resource -> IO Metadata
resourceMetadata rp r = do
_ <- resourceModified rp r
Internal.resourceMetadata rp r
--------------------------------------------------------------------------------
-- | Wrapper to ensure metadata cache is invalidated if necessary
resourceBody :: ResourceProvider -> Resource -> IO String
resourceBody rp r = do
_ <- resourceModified rp r
Internal.resourceBody rp r