diff options
Diffstat (limited to 'src/Hakyll/Core/ResourceProvider.hs')
| -rw-r--r-- | src/Hakyll/Core/ResourceProvider.hs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Hakyll/Core/ResourceProvider.hs b/src/Hakyll/Core/ResourceProvider.hs new file mode 100644 index 0000000..f18d462 --- /dev/null +++ b/src/Hakyll/Core/ResourceProvider.hs @@ -0,0 +1,46 @@ +-------------------------------------------------------------------------------- +-- | This module provides an wrapper API around the file system which does some +-- caching. +module Hakyll.Core.ResourceProvider + ( -- * 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.Identifier +import Hakyll.Core.Metadata +import Hakyll.Core.ResourceProvider.Internal +import qualified Hakyll.Core.ResourceProvider.MetadataCache as Internal +import Hakyll.Core.ResourceProvider.Modified + + +-------------------------------------------------------------------------------- +-- | Wrapper to ensure metadata cache is invalidated if necessary +resourceMetadata :: ResourceProvider -> Identifier a -> IO Metadata +resourceMetadata rp r = do + _ <- resourceModified rp r + Internal.resourceMetadata rp r + + +-------------------------------------------------------------------------------- +-- | Wrapper to ensure metadata cache is invalidated if necessary +resourceBody :: ResourceProvider -> Identifier a -> IO String +resourceBody rp r = do + _ <- resourceModified rp r + Internal.resourceBody rp r |
