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
envLocalStateDir = lsdir
, envLucuConf = lucuConf
, envStorage = storage
- }
\ No newline at end of file
+ }
+
+
+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