mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user