X-Git-Url: https://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Rakka%2FEnvironment.hs;h=c526c892dd771b1c179ad639e374361c9624b411;hp=ea82209885001648f23c2853750c9451ba7364fe;hb=42f51754dea02201aececaacbf194d714cd58aaf;hpb=98fd1cb53a837a9bda7145544c34872acb13a634 diff --git a/Rakka/Environment.hs b/Rakka/Environment.hs index ea82209..c526c89 100644 --- a/Rakka/Environment.hs +++ b/Rakka/Environment.hs @@ -1,14 +1,16 @@ +{-# LANGUAGE + UnicodeSyntax + #-} module Rakka.Environment ( Environment(..) , InterpTable , setupEnv ) where - -import Control.Arrow -import Control.Arrow.ArrowList +import Control.Arrow.ArrowList +import Control.Arrow.Unicode 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 @@ -26,8 +28,7 @@ import System.Directory import System.FilePath import System.Log.Logger import Text.HyperEstraier -import Text.XML.HXT.Arrow.XmlIOStateArrow - +import Text.XML.HXT.Arrow.XmlState logger :: String logger = "Rakka.Environment" @@ -43,15 +44,13 @@ data Environment = Environment { , envAuthDB :: !AuthDB } - -setupEnv :: FilePath -> PortNumber -> IO Environment -setupEnv lsdir portNum +setupEnv ∷ FilePath → ServiceName → IO Environment +setupEnv lsdir port = do let lucuConf = LC.defaultConfig { - LC.cnfServerPort = PortNumber portNum + LC.cnfServerPort = port } reposPath = lsdir "repos" interpTable = mkInterpTable - reposExist <- doesDirectoryExist reposPath repos <- if reposExist then do debugM logger ("Found a subversion repository on " ++ reposPath) @@ -62,7 +61,6 @@ setupEnv lsdir portNum sysConf <- mkSystemConfig lucuConf repos storage <- mkStorage lsdir repos (makeDraft' interpTable) authDB <- mkAuthDB lsdir - return Environment { envLocalStateDir = lsdir , envLucuConf = lucuConf @@ -73,28 +71,27 @@ setupEnv lsdir portNum , envAuthDB = authDB } where - makeDraft' :: InterpTable -> Page -> IO Document + makeDraft' ∷ InterpTable → Page → IO Document makeDraft' interpTable page - = do [doc] <- runX ( setErrorMsgHandler False fail - >>> - constA page - >>> - xmlizePage - >>> - makeDraft interpTable - ) + = do [doc] ← runX ( setErrorMsgHandler False fail + ⋙ + constA page + ⋙ + xmlizePage + ⋙ + makeDraft interpTable + ) return doc - -mkInterpTable :: InterpTable +mkInterpTable ∷ InterpTable mkInterpTable = listToTable $ - foldl (++) [] [ Base.interpreters - , Image.interpreters - , PageList.interpreters - --, Trackback.interpreters - , Outline.interpreters - ] + concat [ Base.interpreters + , Image.interpreters + , PageList.interpreters + --, Trackback.interpreters + , Outline.interpreters + ] where - listToTable :: [Interpreter] -> InterpTable + listToTable ∷ [Interpreter] → InterpTable listToTable xs - = M.fromList [ (commandName x, x) | x <- xs ] + = M.fromList [ (commandName x, x) | x ← xs ]