X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Main.hs;h=866fe5d097b92bc9832446ec359242b6279ac9d8;hp=78de22fad823e90529f0b5cd0948b33ebbea0dc1;hb=223d4df57fa1371945075d4d2714e5f36c1fc5dd;hpb=8631d8de8373ec8226d19019ae7cf3a1bf2e44e5 diff --git a/Main.hs b/Main.hs index 78de22f..866fe5d 100644 --- a/Main.hs +++ b/Main.hs @@ -3,7 +3,7 @@ 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 @@ -20,7 +20,7 @@ import Rakka.Resource.SystemConfig import Rakka.Resource.Users import Rakka.Storage import Subversion -import System.Console.GetOpt +import System.Console.GetOpt -- FIXME: Use better library than this. import System.Directory import System.Environment import System.Exit @@ -40,7 +40,7 @@ logger = "Main" data CmdOpt - = OptPortNum PortNumber + = OptPortNum ServiceName | OptLSDir FilePath | OptUserName String | OptGroupName String @@ -51,8 +51,8 @@ data CmdOpt deriving (Eq, Show) -defaultPort :: PortNumber -defaultPort = toEnum 8080 +defaultPort :: ServiceName +defaultPort = "8080" defaultLocalStateDir :: FilePath defaultLocalStateDir = LOCALSTATEDIR -- replaced by CPP @@ -70,8 +70,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") @@ -95,7 +95,7 @@ options = [ Option ['p'] ["port"] , Option ['r'] ["rebuild-index"] (NoArg OptRebuildIndex) - "Rebuild the index database." + "Rebuild the index database. (Only for debug purposes)" , Option ['h'] ["help"] (NoArg OptHelp) @@ -168,7 +168,7 @@ resTree env ] -getPortNum :: [CmdOpt] -> IO PortNumber +getPortNum :: [CmdOpt] -> IO ServiceName getPortNum opts = do let xs = mapMaybe (\ x -> case x of OptPortNum n -> Just n