on master help sign in
Add makePatternDependency
commit9bd35cd755a4e79804e1745cf116cadbb352690d authorJasper Van der Jeugt <m@jaspervdj.be> dateTue 5 Mar 2013, 12:51 (14 years ago) parent3b9b11c
2 files changed+11
src/Hakyll/Core/Metadata.hs+9 src/Hakyll/Core/Rules.hs+2
src/Hakyll/Core/Metadata.hs+9
@@ -2,6 +2,7 @@
22module Hakyll.Core.Metadata
33 ( Metadata
44 , MonadMetadata (..)
5+ , makePatternDependency
56 ) where
67
78
@@ -11,6 +12,7 @@ import Data.Map (Map)
1112
1213
1314--------------------------------------------------------------------------------
15+import Hakyll.Core.Dependencies
1416import Hakyll.Core.Identifier
1517import Hakyll.Core.Identifier.Pattern
1618
@@ -30,3 +32,10 @@ class Monad m => MonadMetadata m where
3032 forM matches' $ \id' -> do
3133 metadata <- getMetadata id'
3234 return (id', metadata)
35+
36+
37+--------------------------------------------------------------------------------
38+makePatternDependency :: MonadMetadata m => Pattern -> m Dependency
39+makePatternDependency pattern = do
40+ matches' <- getMatches pattern
41+ return $ PatternDependency pattern matches'
src/Hakyll/Core/Rules.hs+2
@@ -171,6 +171,8 @@ preprocess = Rules . liftIO
171171-- | Advanced usage: add extra dependencies to compilers. Basically this is
172172-- needed when you're doing unsafe tricky stuff in the rules monad, but you
173173-- still want correct builds.
174+--
175+-- A useful utility for this purpose is 'makePatternDependency'.
174176rulesExtraDependencies :: [Dependency] -> Rules a -> Rules a
175177rulesExtraDependencies deps = Rules . censor addDependencies . unRules
176178 where