import Control.Arrow
import Control.Arrow.ArrowList
import qualified Data.Map as M
-import Network
+import Network.Socket
import qualified Network.HTTP.Lucu.Config as LC
+import Rakka.Authorization
import Rakka.Page
import Rakka.Storage
import Rakka.SystemConfig
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.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 Text.HyperEstraier
import Text.XML.HXT.Arrow.XmlIOStateArrow
+logger :: String
logger = "Rakka.Environment"
, envSysConf :: !SystemConfig
, envStorage :: !Storage
, envInterpTable :: !InterpTable
+ , envAuthDB :: !AuthDB
}
-setupEnv :: FilePath -> PortNumber -> IO Environment
+setupEnv :: FilePath -> ServiceName -> IO Environment
setupEnv lsdir portNum
= do let lucuConf = LC.defaultConfig {
- LC.cnfServerPort = PortNumber portNum
+ LC.cnfServerPort = portNum
}
reposPath = lsdir </> "repos"
interpTable = mkInterpTable
createRepository reposPath [] []
sysConf <- mkSystemConfig lucuConf repos
storage <- mkStorage lsdir repos (makeDraft' interpTable)
+ authDB <- mkAuthDB lsdir
- return $ Environment {
+ return Environment {
envLocalStateDir = lsdir
, envLucuConf = lucuConf
, envRepository = repos
, envSysConf = sysConf
, envStorage = storage
, envInterpTable = interpTable
+ , envAuthDB = authDB
}
where
makeDraft' :: InterpTable -> Page -> IO Document
foldl (++) [] [ Base.interpreters
, Image.interpreters
, PageList.interpreters
- , Trackback.interpreters
+ --, Trackback.interpreters
, Outline.interpreters
]
where