summaryrefslogtreecommitdiff
path: root/src/Hakyll/Core
diff options
context:
space:
mode:
authorJasper Van der Jeugt <m@jaspervdj.be>2013-03-05 12:51:27 +0100
committerJasper Van der Jeugt <m@jaspervdj.be>2013-03-05 12:51:27 +0100
commit9bd35cd755a4e79804e1745cf116cadbb352690d (patch)
tree190d84e0df02f33257f11368198f55a181c7fcd4 /src/Hakyll/Core
parent3b9b11c636787de9d5a0e5e49aff8e1495bd7c04 (diff)
downloadhakyll-9bd35cd755a4e79804e1745cf116cadbb352690d.tar.gz
Add makePatternDependency
Diffstat (limited to 'src/Hakyll/Core')
-rw-r--r--src/Hakyll/Core/Metadata.hs9
-rw-r--r--src/Hakyll/Core/Rules.hs2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/Hakyll/Core/Metadata.hs b/src/Hakyll/Core/Metadata.hs
index 884acd3..9fc2d3e 100644
--- a/src/Hakyll/Core/Metadata.hs
+++ b/src/Hakyll/Core/Metadata.hs
@@ -2,6 +2,7 @@
module Hakyll.Core.Metadata
( Metadata
, MonadMetadata (..)
+ , makePatternDependency
) where
@@ -11,6 +12,7 @@ import Data.Map (Map)
--------------------------------------------------------------------------------
+import Hakyll.Core.Dependencies
import Hakyll.Core.Identifier
import Hakyll.Core.Identifier.Pattern
@@ -30,3 +32,10 @@ class Monad m => MonadMetadata m where
forM matches' $ \id' -> do
metadata <- getMetadata id'
return (id', metadata)
+
+
+--------------------------------------------------------------------------------
+makePatternDependency :: MonadMetadata m => Pattern -> m Dependency
+makePatternDependency pattern = do
+ matches' <- getMatches pattern
+ return $ PatternDependency pattern matches'
diff --git a/src/Hakyll/Core/Rules.hs b/src/Hakyll/Core/Rules.hs
index 8037ffb..66210b6 100644
--- a/src/Hakyll/Core/Rules.hs
+++ b/src/Hakyll/Core/Rules.hs
@@ -171,6 +171,8 @@ preprocess = Rules . liftIO
-- | Advanced usage: add extra dependencies to compilers. Basically this is
-- needed when you're doing unsafe tricky stuff in the rules monad, but you
-- still want correct builds.
+--
+-- A useful utility for this purpose is 'makePatternDependency'.
rulesExtraDependencies :: [Dependency] -> Rules a -> Rules a
rulesExtraDependencies deps = Rules . censor addDependencies . unRules
where