X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Rakka%2FEnvironment.hs;h=f8d824b9516b2a94108d10351cb5739de7f05f1f;hp=e52f4efabe4883fe7f05d6506e3cee2a10a9b23e;hb=98e508613bb7a50a1f65998ce87f065df957b736;hpb=8d43862784caf5fc187c948c89e7ef58551f5642 diff --git a/Rakka/Environment.hs b/Rakka/Environment.hs index e52f4ef..f8d824b 100644 --- a/Rakka/Environment.hs +++ b/Rakka/Environment.hs @@ -5,12 +5,12 @@ module Rakka.Environment ) where -import Data.Map (Map) import qualified Data.Map as M import Network import qualified Network.HTTP.Lucu.Config as LC import Rakka.Storage import Rakka.SystemConfig +import Rakka.Wiki.Engine import Rakka.Wiki.Interpreter import qualified Rakka.Wiki.Interpreter.Base as Base import qualified Rakka.Wiki.Interpreter.Image as Image @@ -19,8 +19,10 @@ import qualified Rakka.Wiki.Interpreter.Outline as Outline import Subversion.Repository import System.Directory import System.FilePath +import System.IO import System.Log.Logger + logger = "Rakka.Environment" @@ -28,22 +30,18 @@ data Environment = Environment { envLocalStateDir :: !FilePath , envLucuConf :: !LC.Config , envRepository :: !Repository - , envStorage :: !Storage , envSysConf :: !SystemConfig + , envStorage :: !Storage , envInterpTable :: !InterpTable } -type InterpTable = Map String Interpreter - - setupEnv :: FilePath -> PortNumber -> IO Environment setupEnv lsdir portNum = do let lucuConf = LC.defaultConfig { LC.cnfServerPort = PortNumber portNum } reposPath = lsdir `combine` "repos" - storage = mkStorage interpTable = mkInterpTable reposExist <- doesDirectoryExist reposPath @@ -54,14 +52,14 @@ setupEnv lsdir portNum do noticeM logger ("Creating a subversion repository on " ++ reposPath) createRepository reposPath [] [] sysConf <- mkSystemConfig lucuConf repos - + storage <- mkStorage lsdir repos (makeDraft interpTable) return $ Environment { envLocalStateDir = lsdir , envLucuConf = lucuConf , envRepository = repos - , envStorage = storage , envSysConf = sysConf + , envStorage = storage , envInterpTable = interpTable }