on master help sign in
Revert "Throw an error in case of duplicate compilers"

This reverts commit ffbce966075d258b16b44e6856333ef41e4487f4.

commit98d03dfe488c7d9e09101ac442912bc65bb39f23 authorJasper Van der Jeugt <m@jaspervdj.be> dateThu 5 Dec 2013, 12:27 (13 years ago) parent949afd2
2 files changed+6−19
src/Hakyll/Core/Rules/Internal.hs+5−17 src/Hakyll/Core/Runtime.hs+1−2
src/Hakyll/Core/Rules/Internal.hs+5−17
@@ -16,7 +16,6 @@ import Control.Applicative (Applicative, (<$>))
1616import Control.Monad.Reader (ask)
1717import Control.Monad.RWS (RWST, runRWST)
1818import Control.Monad.Trans (liftIO)
19−import Data.Map (Map)
2019import qualified Data.Map as M
2120import Data.Monoid (Monoid, mappend, mempty)
2221import Data.Set (Set)
@@ -98,26 +97,15 @@ runRules rules provider = do
9897 (_, _, ruleSet) <- runRWST (unRules rules) env emptyRulesState
9998
10099 -- Ensure compiler uniqueness
101− uniqueCompilers <- case fromListUnique (rulesCompilers ruleSet) of
102− Right m -> return m
103− Left id' -> error $
104− "Hakyll.Core.Rules.Internal.runRules: duplicate compiler for " ++
105− show id'
100+ let ruleSet' = ruleSet
101+ { rulesCompilers = M.toList $
102+ M.fromListWith (flip const) (rulesCompilers ruleSet)
103+ }
106104
107− return ruleSet {rulesCompilers = M.toList uniqueCompilers}
105+ return ruleSet'
108106 where
109107 env = RulesRead
110108 { rulesProvider = provider
111109 , rulesMatches = []
112110 , rulesVersion = Nothing
113111 }
114−
115−
116−--------------------------------------------------------------------------------
117−fromListUnique :: Ord k => [(k, v)] -> Either k (Map k v)
118−fromListUnique = go M.empty
119− where
120− go m [] = Right m
121− go m ((k, v) : zs) = case M.lookup k m of
122− Nothing -> go (M.insert k v m) zs
123− Just _ -> Left k
src/Hakyll/Core/Runtime.hs+1−2
@@ -53,8 +53,7 @@ run config verbosity rules = do
5353 provider <- newProvider store (shouldIgnoreFile config) $
5454 providerDirectory config
5555 Logger.message logger "Running rules..."
56− Logger.flush logger
57− ruleSet <- runRules rules provider
56+ ruleSet <- runRules rules provider
5857
5958 -- Get old facts
6059 mOldFacts <- Store.get store factsKey