summaryrefslogtreecommitdiff
path: root/src/Hakyll
diff options
context:
space:
mode:
authorJasper Van der Jeugt <m@jaspervdj.be>2013-01-08 12:47:55 +0100
committerJasper Van der Jeugt <m@jaspervdj.be>2013-01-08 12:47:55 +0100
commit50371ab5c198509c710a289430e1ad752eac786a (patch)
tree85ce5deeaee185fbf752a398f0583914c4e84b00 /src/Hakyll
parent91da7902518e7a1eb5a386408a53ef04d19e3de6 (diff)
downloadhakyll-50371ab5c198509c710a289430e1ad752eac786a.tar.gz
Add preprocess rule
Diffstat (limited to 'src/Hakyll')
-rw-r--r--src/Hakyll/Core/Rules.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Hakyll/Core/Rules.hs b/src/Hakyll/Core/Rules.hs
index 450df83..8037ffb 100644
--- a/src/Hakyll/Core/Rules.hs
+++ b/src/Hakyll/Core/Rules.hs
@@ -25,6 +25,8 @@ module Hakyll.Core.Rules
, route
-- * Advanced usage
+ , preprocess
+ , Dependency (..)
, rulesExtraDependencies
) where
@@ -33,6 +35,7 @@ module Hakyll.Core.Rules
import Control.Applicative ((<$>))
import Control.Monad.Reader (ask, local)
import Control.Monad.State (get, modify, put)
+import Control.Monad.Trans (liftIO)
import Control.Monad.Writer (censor, tell)
import Data.Maybe (fromMaybe)
import Data.Monoid (mempty)
@@ -158,6 +161,13 @@ route route' = Rules $ modify $ \s -> s {rulesRoute = Just route'}
--------------------------------------------------------------------------------
+-- | Execute an 'IO' action immediately while the rules are being evaluated.
+-- This should be avoided if possible, but occasionally comes in useful.
+preprocess :: IO a -> Rules a
+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.