]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Environment.hs
I'm getting tired so I must have a rest.
[Rakka.git] / Rakka / Environment.hs
index e793d0001f401b7e07a1c0b4fd9c38bc10787a4b..881a9e69ef40fe3f8023fb81aafc80bb90f08b2f 100644 (file)
@@ -1,11 +1,21 @@
 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
 
 
@@ -26,4 +36,33 @@ setupEnv lsdir portNum
                       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