]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Environment.hs
Wrote many...
[Rakka.git] / Rakka / Environment.hs
index e52f4efabe4883fe7f05d6506e3cee2a10a9b23e..321ba7ed07bac0a8ba53304ac1a798f8c84c1901 100644 (file)
@@ -5,22 +5,25 @@ module Rakka.Environment
     )
     where
 
     )
     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 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           Rakka.Wiki.Interpreter
 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 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
 
 import           System.Log.Logger
 
+
 logger = "Rakka.Environment"
 
 
 logger = "Rakka.Environment"
 
 
@@ -28,22 +31,18 @@ data Environment = Environment {
       envLocalStateDir :: !FilePath
     , envLucuConf      :: !LC.Config
     , envRepository    :: !Repository
       envLocalStateDir :: !FilePath
     , envLucuConf      :: !LC.Config
     , envRepository    :: !Repository
-    , envStorage       :: !Storage
     , envSysConf       :: !SystemConfig
     , envSysConf       :: !SystemConfig
+    , envStorage       :: !Storage
     , envInterpTable   :: !InterpTable
     }
 
 
     , envInterpTable   :: !InterpTable
     }
 
 
-type InterpTable = Map String Interpreter
-
-
 setupEnv :: FilePath -> PortNumber -> IO Environment
 setupEnv lsdir portNum
     = do let lucuConf    = LC.defaultConfig {
                              LC.cnfServerPort = PortNumber portNum
                            }
 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
              interpTable = mkInterpTable
          
          reposExist  <- doesDirectoryExist reposPath
@@ -54,14 +53,14 @@ setupEnv lsdir portNum
                             do noticeM logger ("Creating a subversion repository on " ++ reposPath)
                                createRepository reposPath [] []
          sysConf     <- mkSystemConfig lucuConf repos
                             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
 
          return $ Environment {
                       envLocalStateDir = lsdir
                     , envLucuConf      = lucuConf
                     , envRepository    = repos
-                    , envStorage       = storage
                     , envSysConf       = sysConf
                     , envSysConf       = sysConf
+                    , envStorage       = storage
                     , envInterpTable   = interpTable
                     }
 
                     , envInterpTable   = interpTable
                     }
 
@@ -70,6 +69,7 @@ mkInterpTable :: InterpTable
 mkInterpTable = listToTable $
                 foldl (++) [] [ Base.interpreters
                               , Image.interpreters
 mkInterpTable = listToTable $
                 foldl (++) [] [ Base.interpreters
                               , Image.interpreters
+                              , PageList.interpreters
                               , Trackback.interpreters
                               , Outline.interpreters
                               ]
                               , Trackback.interpreters
                               , Outline.interpreters
                               ]