)
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
import Subversion.Repository
import System.Directory
import System.FilePath
+import System.IO
import System.Log.Logger
+
logger = "Rakka.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
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
}