on 5cc710d help sign in
hakyll/src/Hakyll/Core/ResourceProvider/FileResourceProvider.hs
29 lines 977 B history raw
1-- | A concrete 'ResourceProvider' that gets it's resources from the filesystem
2--
3module Hakyll.Core.ResourceProvider.FileResourceProvider
4 ( fileResourceProvider
5 ) where
7import Control.Applicative ((<$>))
9import qualified Data.ByteString.Lazy as LB
11import Hakyll.Core.ResourceProvider
12import Hakyll.Core.Identifier
13import Hakyll.Core.Util.File
14import Hakyll.Core.Configuration
16-- | Create a filesystem-based 'ResourceProvider'
17--
18fileResourceProvider :: HakyllConfiguration -> IO ResourceProvider
19fileResourceProvider configuration = do
20 -- Retrieve a list of identifiers
21 list <- map parseIdentifier . filter (not . ignoreFile configuration) <$>
22 getRecursiveContents False "."
24 -- Construct a resource provider
25 return ResourceProvider
26 { resourceList = map Resource list
27 , resourceString = readFile . toFilePath . unResource
28 , resourceLazyByteString = LB.readFile . toFilePath . unResource
29 }