@@ -17,7 +17,7 @@ import qualified Data.Map as M
1717import Data.Monoid (mempty)
1818import Data.Set (Set)
1919import qualified Data.Set as S
20−import System.Exit (ExitCode (..), exitWith)
20+import System.Exit (ExitCode (..))
2121import System.FilePath ((</>))
2222
2323
@@ -41,8 +41,7 @@ import Hakyll.Core.Writable
4141
4242
4343--------------------------------------------------------------------------------
44−-- | TODO Make this return exit code?
45−run :: Configuration -> Verbosity -> Rules a -> IO RuleSet
44+run :: Configuration -> Verbosity -> Rules a -> IO (ExitCode, RuleSet)
4645run config verbosity rules = do
4746 -- Initialization
4847 logger <- Logger.new verbosity
@@ -82,7 +81,7 @@ run config verbosity rules = do
8281 Left e -> do
8382 Logger.error logger e
8483 Logger.flush logger
85− exitWith $ ExitFailure 1
84+ return (ExitFailure 1, ruleSet)
8685
8786 Right (_, s, _) -> do
8887 Store.set store factsKey $ runtimeFacts s
@@ -91,7 +90,7 @@ run config verbosity rules = do
9190 removeDirectory $ tmpDirectory config
9291
9392 Logger.flush logger
94− return ruleSet
93+ return (ExitSuccess, ruleSet)
9594 where
9695 factsKey = ["Hakyll.Core.Runtime.run", "facts"]
9796