]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Main.hs
Resurrection from bitrot
[Rakka.git] / Main.hs
diff --git a/Main.hs b/Main.hs
index 430fdfc62d1281f5e23d6a78344ffde065c37df8..cf4cf8868008d7df0a11442ce23a974c95a76b1c 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -1,9 +1,12 @@
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE
+    CPP
+  , UnicodeSyntax
+  #-}
 import           Control.Exception
 import           Control.Monad
 import           Data.List
 import           Data.Maybe
-import           Network
+import Network.Socket
 import           Network.HTTP.Lucu
 import           OpenSSL
 import           Rakka.Environment
@@ -40,7 +43,7 @@ logger = "Main"
 
 
 data CmdOpt
-    = OptPortNum   PortNumber
+    = OptPortNum   ServiceName
     | OptLSDir     FilePath
     | OptUserName  String
     | OptGroupName String
@@ -51,8 +54,8 @@ data CmdOpt
     deriving (Eq, Show)
 
 
-defaultPort :: PortNumber
-defaultPort = toEnum 8080
+defaultPort ∷ ServiceName
+defaultPort = "8080"
 
 defaultLocalStateDir :: FilePath
 defaultLocalStateDir = LOCALSTATEDIR -- replaced by CPP
@@ -70,8 +73,8 @@ defaultLogLevel = NOTICE
 
 options :: [OptDescr CmdOpt]
 options = [ Option ['p'] ["port"]
-                   (ReqArg (OptPortNum . toEnum . read) "NUM")
-                   ("Port number to listen. (default: " ++ show defaultPort ++ ")")
+                   (ReqArg OptPortNum "NUM")
+                   ("Port number to listen. (default: " ++ defaultPort ++ ")")
 
           , Option ['d'] ["localstatedir"]
                    (ReqArg OptLSDir "DIR")
@@ -143,7 +146,7 @@ main = withOpenSSL $
           withSystemLock (lsdir </> "lock") $
             withPidFile (lsdir </> "pid") $
               do setupLogger opts
-                 env <- setupEnv lsdir portNum
+                 env  setupEnv lsdir portNum
 
                  rebuildIndexIfRequested env opts
 
@@ -167,17 +170,15 @@ resTree env
                , (["users"       ], resUsers        env)
                 ]
 
-
-getPortNum :: [CmdOpt] -> IO PortNumber
+getPortNum ∷ [CmdOpt] → IO ServiceName
 getPortNum opts
-    = do let xs = mapMaybe (\ x -> case x of
-                                     OptPortNum n -> Just n
-                                     _            -> Nothing) opts
+    = do let xs = mapMaybe (\x → case x of
+                                   OptPortNum n → Just n
+                                   _            → Nothing) opts
          case xs of
-           []     -> return defaultPort
-           (x:[]) -> return x
-           _      -> error "too many --port options."
-
+           []     → return defaultPort
+           (x:[]) → return x
+           _      → error "too many --port options."
 
 getUserID :: [CmdOpt] -> IO UserID
 getUserID opts