]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Main.hs
/dumpRepos
[Rakka.git] / Main.hs
diff --git a/Main.hs b/Main.hs
index 8027c7ec0978a4caf2aec2cae6ed90cd2c2e3f59..c4bb0485b13ff28f9d1ac49e51d427de0b4deb47 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -4,11 +4,18 @@ import           Data.List
 import           Data.Maybe
 import           Network
 import           Network.HTTP.Lucu
+import           OpenSSL
 import           Rakka.Environment
+import           Rakka.Resource.CheckAuth
+import           Rakka.Resource.DumpRepos
 import           Rakka.Resource.Index
 import           Rakka.Resource.JavaScript
+import           Rakka.Resource.PageEntity
 import           Rakka.Resource.Object
 import           Rakka.Resource.Render
+import           Rakka.Resource.Search
+import           Rakka.Resource.SystemConfig
+import           Rakka.Resource.TrackBack
 import           Rakka.Storage
 import           Subversion
 import           System.Console.GetOpt
@@ -22,6 +29,8 @@ import           System.Posix.Files
 import           System.Posix.Types
 import           System.Posix.User
 
+
+logger :: String
 logger = "Main"
 
 
@@ -38,7 +47,7 @@ data CmdOpt
 
 
 defaultPort :: PortNumber
-defaultPort = fromIntegral 8080
+defaultPort = toEnum 8080
 
 defaultLocalStateDir :: FilePath
 defaultLocalStateDir = LOCALSTATEDIR -- replaced by CPP
@@ -56,7 +65,7 @@ defaultLogLevel = NOTICE
 
 options :: [OptDescr CmdOpt]
 options = [ Option ['p'] ["port"]
-                   (ReqArg (OptPortNum . fromIntegral . read) "NUM")
+                   (ReqArg (OptPortNum . toEnum . read) "NUM")
                    ("Port number to listen. (default: " ++ show defaultPort ++ ")")
 
           , Option ['d'] ["localstatedir"]
@@ -97,7 +106,8 @@ printUsage = do putStrLn "Usage:"
 
 
 main :: IO ()
-main = withSubversion $
+main = withOpenSSL $
+       withSubversion $
        do (opts, nonOpts, errors) <- return . getOpt Permute options =<< getArgs
 
           when (not $ null errors)
@@ -128,14 +138,22 @@ main = withSubversion $
           rebuildIndexIfRequested env opts
 
           infoM logger ("Listening to " ++ show portNum ++ "/tcp...")
-          runHttpd (envLucuConf env) (resTree env) [fallbackRender env]
+          runHttpd (envLucuConf env) (resTree env) [fallbackPageEntity env]
 
           
 resTree :: Environment -> ResTree
 resTree env
-    = mkResTree [ ([]        , resIndex  env)
-                , (["object"], resObject env)
-                , (["js"    ], javaScript   )
+    = mkResTree [ ([]              , resIndex        env)
+                , (["checkAuth"   ], resCheckAuth    env)
+                , (["dumpRepos"   ], resDumpRepos    env)
+                , (["js"          ], javaScript         )
+                , (["object"      ], resObject       env)
+                , (["render"      ], resRender       env)
+                , (["search"      ], resSearch       env)
+                , (["search.html" ], resSearch       env)
+                , (["search.xml"  ], resSearch       env)
+                , (["systemConfig"], resSystemConfig env)
+                , (["trackback"   ], resTrackBack    env)
                 ]
 
 
@@ -220,4 +238,4 @@ rebuildIndexIfRequested env opts
                                                OptRebuildIndex -> True
                                                _               -> False) opts
          when rebuild
-                  $ rebuildIndex (envStorage env)
\ No newline at end of file
+                  $ rebuildIndex (envStorage env)