2012-10-29 14:01:58 +00:00
|
|
|
--------------------------------------------------------------------------------
|
2012-11-08 11:45:26 +00:00
|
|
|
-- | This module provides an wrapper API around the file system which does some
|
|
|
|
-- caching.
|
2012-11-09 15:34:45 +00:00
|
|
|
module Hakyll.Core.ResourceProvider
|
2012-11-08 11:45:26 +00:00
|
|
|
( -- * Constructing resource providers
|
|
|
|
ResourceProvider
|
|
|
|
, newResourceProvider
|
|
|
|
|
|
|
|
-- * Querying resource properties
|
2012-08-07 21:10:18 +00:00
|
|
|
, resourceList
|
2010-12-31 12:28:31 +00:00
|
|
|
, resourceExists
|
2010-12-31 11:38:12 +00:00
|
|
|
, resourceModified
|
2012-11-08 11:45:26 +00:00
|
|
|
, resourceModificationTime
|
2012-10-29 14:01:58 +00:00
|
|
|
|
2012-11-08 11:45:26 +00:00
|
|
|
-- * Access to raw resource content
|
|
|
|
, resourceString
|
|
|
|
, resourceLBS
|
2011-02-11 16:52:19 +00:00
|
|
|
|
2012-11-08 11:45:26 +00:00
|
|
|
-- * Access to metadata and body content
|
|
|
|
, resourceMetadata
|
|
|
|
, resourceBody
|
|
|
|
) where
|
2010-12-31 12:28:31 +00:00
|
|
|
|
2012-10-29 14:01:58 +00:00
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
2012-11-09 15:34:45 +00:00
|
|
|
import Hakyll.Core.Identifier
|
|
|
|
import Hakyll.Core.Metadata
|
|
|
|
import Hakyll.Core.ResourceProvider.Internal
|
|
|
|
import qualified Hakyll.Core.ResourceProvider.MetadataCache as Internal
|
|
|
|
import Hakyll.Core.ResourceProvider.Modified
|
2010-12-31 11:38:12 +00:00
|
|
|
|
2012-10-29 14:01:58 +00:00
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
2012-11-08 11:45:26 +00:00
|
|
|
-- | Wrapper to ensure metadata cache is invalidated if necessary
|
2012-11-09 15:34:45 +00:00
|
|
|
resourceMetadata :: ResourceProvider -> Identifier a -> IO Metadata
|
2012-11-08 11:45:26 +00:00
|
|
|
resourceMetadata rp r = do
|
|
|
|
_ <- resourceModified rp r
|
|
|
|
Internal.resourceMetadata rp r
|
2011-04-06 07:30:24 +00:00
|
|
|
|
2012-10-29 14:01:58 +00:00
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
2012-11-08 11:45:26 +00:00
|
|
|
-- | Wrapper to ensure metadata cache is invalidated if necessary
|
2012-11-09 15:34:45 +00:00
|
|
|
resourceBody :: ResourceProvider -> Identifier a -> IO String
|
2012-11-08 11:45:26 +00:00
|
|
|
resourceBody rp r = do
|
|
|
|
_ <- resourceModified rp r
|
|
|
|
Internal.resourceBody rp r
|