gf -server[=port]

You can now specify which port the HTTP server should run on in server mode.
The default is 41296.
This commit is contained in:
hallgren
2011-12-14 15:28:27 +00:00
parent 02bcfa2098
commit 15678a0fce
4 changed files with 13 additions and 7 deletions

View File

@@ -45,5 +45,5 @@ mainOpts opts files =
ModeHelp -> putStrLn helpMessage
ModeInteractive -> mainGFI opts files
ModeRun -> mainRunGFI opts files
ModeServer -> mainServerGFI opts files
ModeServer port -> mainServerGFI opts port files
ModeCompiler -> mainGFC opts files

View File

@@ -74,7 +74,7 @@ errors = fail . unlines
-- Types
data Mode = ModeVersion | ModeHelp | ModeInteractive | ModeRun | ModeCompiler
| ModeServer
| ModeServer Int{-port-}
deriving (Show,Eq,Ord)
data Verbosity = Quiet | Normal | Verbose | Debug
@@ -286,7 +286,8 @@ optDescr =
Option [] ["batch"] (NoArg (mode ModeCompiler)) "Run in batch compiler mode.",
Option [] ["interactive"] (NoArg (mode ModeInteractive)) "Run in interactive mode (default).",
Option [] ["run"] (NoArg (mode ModeRun)) "Run in interactive mode, showing output only (no other messages).",
Option [] ["server"] (NoArg (mode ModeServer)) "Run in HTTP server mode.",
Option [] ["server"] (OptArg modeServer "port") $
"Run in HTTP server mode on given port (default "++show defaultPort++").",
Option [] ["tags"] (NoArg (set $ \o -> o{optMode = ModeCompiler, optTagsOnly = True})) "Build TAGS file and exit.",
Option ['E'] [] (NoArg (phase Preproc)) "Stop after preprocessing (with --preproc).",
Option ['C'] [] (NoArg (phase Convert)) "Stop after conversion to .gf.",
@@ -361,6 +362,12 @@ optDescr =
]
where phase x = set $ \o -> o { optStopAfterPhase = x }
mode x = set $ \o -> o { optMode = x }
defaultPort = 41296
modeServer = maybe (ms defaultPort) readPort
where
ms = mode . ModeServer
readPort p = maybe err ms (readMaybe p)
where err = fail $ "Bad server port: "++p
verbosity mv = case mv of
Nothing -> set $ \o -> o { optVerbosity = Verbose }
Just v -> case readMaybe v >>= toEnumBounded of

View File

@@ -69,8 +69,8 @@ mainGFI opts files = do
shell opts files = loop opts =<< importInEnv emptyGFEnv opts files
#ifdef SERVER_MODE
mainServerGFI opts0 files =
server (execute1 opts) =<< importInEnv emptyGFEnv opts files
mainServerGFI opts0 port files =
server port (execute1 opts) =<< importInEnv emptyGFEnv opts files
where opts = beQuiet opts0
#else
mainServerGFI opts files =

View File

@@ -40,7 +40,7 @@ import RunHTTP(cgiHandler)
debug s = liftIO (logPutStrLn s)
-- | Combined FastCGI and HTTP server
server execute1 state0 =
server port execute1 state0 =
do --stderrToFile logFile
state <- newMVar M.empty
cache <- PS.newPGFCache
@@ -61,7 +61,6 @@ server execute1 state0 =
++show port++"/ in your web browser."
initServer port (modifyMVar state . handle state0 cache execute1)
port = 41296
{-
-- | FastCGI request handler
handle_fcgi execute1 state0 stateM cache =