diff options
| author | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2011-04-05 22:14:49 +0200 |
|---|---|---|
| committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2011-04-05 22:14:49 +0200 |
| commit | 015663657ceca7b168bf7d91fbc2fccc41c40904 (patch) | |
| tree | c015978d1eec85981a33d261e32d99d4242acff3 /src/Hakyll/Core/Resource/Provider | |
| parent | 433f36e6f3efdf95276fe0a5f486db3be2824445 (diff) | |
| download | hakyll-015663657ceca7b168bf7d91fbc2fccc41c40904.tar.gz | |
New resource module hierarchy
Diffstat (limited to 'src/Hakyll/Core/Resource/Provider')
| -rw-r--r-- | src/Hakyll/Core/Resource/Provider/File.hs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Hakyll/Core/Resource/Provider/File.hs b/src/Hakyll/Core/Resource/Provider/File.hs new file mode 100644 index 0000000..a795fac --- /dev/null +++ b/src/Hakyll/Core/Resource/Provider/File.hs @@ -0,0 +1,30 @@ +-- | A concrete 'ResourceProvider' that gets it's resources from the filesystem +-- +module Hakyll.Core.Resource.Provider.File + ( fileResourceProvider + ) where + +import Control.Applicative ((<$>)) + +import qualified Data.ByteString.Lazy as LB + +import Hakyll.Core.Resource +import Hakyll.Core.Resource.Provider +import Hakyll.Core.Identifier +import Hakyll.Core.Util.File +import Hakyll.Core.Configuration + +-- | Create a filesystem-based 'ResourceProvider' +-- +fileResourceProvider :: HakyllConfiguration -> IO ResourceProvider +fileResourceProvider configuration = do + -- Retrieve a list of identifiers + list <- map parseIdentifier . filter (not . ignoreFile configuration) <$> + getRecursiveContents False "." + + -- Construct a resource provider + return ResourceProvider + { resourceList = map Resource list + , resourceString = readFile . toFilePath . unResource + , resourceLazyByteString = LB.readFile . toFilePath . unResource + } |
