X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Rakka%2FEnvironment.hs;h=015d37d43fda667574f42886fd7b9c2b8a3a4180;hp=881a9e69ef40fe3f8023fb81aafc80bb90f08b2f;hb=885faf1cabc3f79c90e1885268e2a9138b1ddefb;hpb=03585f9c5773f6c0b59497f4f563909576c402b5 diff --git a/Rakka/Environment.hs b/Rakka/Environment.hs index 881a9e6..015d37d 100644 --- a/Rakka/Environment.hs +++ b/Rakka/Environment.hs @@ -1,28 +1,20 @@ module Rakka.Environment ( Environment(..) , setupEnv - - , getSiteName - , getSiteNameA - - , getBaseURI - , getBaseURIA ) where -import Control.Arrow.ArrowIO -import qualified Data.ByteString.Char8 as C8 -import Data.Maybe import Network import qualified Network.HTTP.Lucu.Config as LC -import Network.URI import Rakka.Storage +import Rakka.SystemConfig data Environment = Environment { - envLocalStateDir :: FilePath - , envLucuConf :: LC.Config - , envStorage :: Storage + envLocalStateDir :: !FilePath + , envLucuConf :: !LC.Config + , envStorage :: !Storage + , envSysConf :: !SystemConfig } @@ -31,38 +23,9 @@ setupEnv lsdir portNum = do let lucuConf = LC.defaultConfig { LC.cnfServerPort = PortNumber portNum } - storage <- mkStorage -- FIXME return $ Environment { envLocalStateDir = lsdir , envLucuConf = lucuConf - , envStorage = storage + , envStorage = mkStorage + , envSysConf = mkSystemConfig lucuConf } - - -getSiteName :: Environment -> IO String -getSiteName env - = return "Rakka" -- FIXME - - -getSiteNameA :: ArrowIO a => Environment -> a b String -getSiteNameA = arrIO0 . getSiteName - - -getBaseURI :: Environment -> IO URI -getBaseURI env - = do let conf = envLucuConf env - host = C8.unpack $ LC.cnfServerHost conf - port = case LC.cnfServerPort conf of - PortNumber num -> fromIntegral num - - defaultURI - = "http://" ++ host ++ - (if port == 80 - then "" - else ':' : show port) ++ "/" - - return $ fromJust $ parseURI defaultURI -- FIXME - - -getBaseURIA :: ArrowIO a => Environment -> a b URI -getBaseURIA = arrIO0 . getBaseURI \ No newline at end of file