]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Environment.hs
Wrote many...
[Rakka.git] / Rakka / Environment.hs
index 48105b4a6d2b840e43e2b87bb7ddedf51c2d4f4b..321ba7ed07bac0a8ba53304ac1a798f8c84c1901 100644 (file)
@@ -5,21 +5,25 @@ 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
-import qualified Rakka.Wiki.Interpreter.Outline as Outline
+import qualified Rakka.Wiki.Interpreter.Base      as Base
+import qualified Rakka.Wiki.Interpreter.Image     as Image
+import qualified Rakka.Wiki.Interpreter.PageList  as PageList
+import qualified Rakka.Wiki.Interpreter.Trackback as Trackback
+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"
 
 
@@ -27,22 +31,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
+             reposPath   = lsdir </> "repos"
              interpTable = mkInterpTable
          
          reposExist  <- doesDirectoryExist reposPath
@@ -53,14 +53,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
                     }
 
@@ -69,6 +69,8 @@ mkInterpTable :: InterpTable
 mkInterpTable = listToTable $
                 foldl (++) [] [ Base.interpreters
                               , Image.interpreters
+                              , PageList.interpreters
+                              , Trackback.interpreters
                               , Outline.interpreters
                               ]
     where