summaryrefslogtreecommitdiff
path: root/src/Hakyll/Core/Resource/Provider
diff options
context:
space:
mode:
authorJasper Van der Jeugt <jaspervdj@gmail.com>2011-04-05 22:14:49 +0200
committerJasper Van der Jeugt <jaspervdj@gmail.com>2011-04-05 22:14:49 +0200
commit015663657ceca7b168bf7d91fbc2fccc41c40904 (patch)
treec015978d1eec85981a33d261e32d99d4242acff3 /src/Hakyll/Core/Resource/Provider
parent433f36e6f3efdf95276fe0a5f486db3be2824445 (diff)
downloadhakyll-015663657ceca7b168bf7d91fbc2fccc41c40904.tar.gz
New resource module hierarchy
Diffstat (limited to 'src/Hakyll/Core/Resource/Provider')
-rw-r--r--src/Hakyll/Core/Resource/Provider/File.hs30
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
+ }