summaryrefslogtreecommitdiff
path: root/src/Hakyll
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hakyll')
-rw-r--r--src/Hakyll/Core/Run.hs5
-rw-r--r--src/Hakyll/Main.hs16
2 files changed, 17 insertions, 4 deletions
diff --git a/src/Hakyll/Core/Run.hs b/src/Hakyll/Core/Run.hs
index 2b0ff5d..b59fdac 100644
--- a/src/Hakyll/Core/Run.hs
+++ b/src/Hakyll/Core/Run.hs
@@ -32,9 +32,9 @@ import Hakyll.Core.Writable
import Hakyll.Core.Store
import Hakyll.Core.Configuration
--- | Run all rules needed
+-- | Run all rules needed, return the rule set used
--
-run :: HakyllConfiguration -> Rules -> IO ()
+run :: HakyllConfiguration -> Rules -> IO RuleSet
run configuration rules = do
store <- makeStore $ storeDirectory configuration
provider <- fileResourceProvider
@@ -46,6 +46,7 @@ run configuration rules = do
state' = runReaderT reader $ env ruleSet provider store
evalStateT state' state
+ return ruleSet
where
env ruleSet provider store = RuntimeEnvironment
{ hakyllConfiguration = configuration
diff --git a/src/Hakyll/Main.hs b/src/Hakyll/Main.hs
index 64800c2..74097f7 100644
--- a/src/Hakyll/Main.hs
+++ b/src/Hakyll/Main.hs
@@ -6,13 +6,15 @@ module Hakyll.Main
) where
import Control.Concurrent (forkIO)
-import Control.Monad (when)
+import Control.Monad (when, forM_)
import System.Environment (getProgName, getArgs)
import System.Directory (doesDirectoryExist, removeDirectoryRecursive)
+import qualified Data.Set as S
import Hakyll.Core.Configuration
import Hakyll.Core.Run
import Hakyll.Core.Rules
+import Hakyll.Core.Rules.Internal
import Hakyll.Web.Preview.INotify
import Hakyll.Web.Preview.Server
@@ -41,7 +43,9 @@ hakyllWith configuration rules = do
-- | Build the site
--
build :: HakyllConfiguration -> Rules -> IO ()
-build = run
+build configuration rules = do
+ _ <- run configuration rules
+ return ()
-- | Remove the output directories
--
@@ -80,11 +84,19 @@ help = do
--
preview :: HakyllConfiguration -> Rules -> Int -> IO ()
preview configuration rules port = do
+ -- Build once, keep the rule set
+ ruleSet <- run configuration rules
+
+ -- Debug: show the resources used
+ forM_ (S.toList $ rulesResources ruleSet) $ putStrLn . show
+
+ {-
-- Fork a thread polling for changes
_ <- forkIO $ previewPoll configuration "." $ build configuration rules
-- Run the server in the main thread
server configuration port
+ -}
-- | Rebuild the site
--