forked from GitHub/gf-core
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
|
ModeHelp -> putStrLn helpMessage
|
||||||
ModeInteractive -> mainGFI opts files
|
ModeInteractive -> mainGFI opts files
|
||||||
ModeRun -> mainRunGFI opts files
|
ModeRun -> mainRunGFI opts files
|
||||||
ModeServer -> mainServerGFI opts files
|
ModeServer port -> mainServerGFI opts port files
|
||||||
ModeCompiler -> mainGFC opts files
|
ModeCompiler -> mainGFC opts files
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ errors = fail . unlines
|
|||||||
-- Types
|
-- Types
|
||||||
|
|
||||||
data Mode = ModeVersion | ModeHelp | ModeInteractive | ModeRun | ModeCompiler
|
data Mode = ModeVersion | ModeHelp | ModeInteractive | ModeRun | ModeCompiler
|
||||||
| ModeServer
|
| ModeServer Int{-port-}
|
||||||
deriving (Show,Eq,Ord)
|
deriving (Show,Eq,Ord)
|
||||||
|
|
||||||
data Verbosity = Quiet | Normal | Verbose | Debug
|
data Verbosity = Quiet | Normal | Verbose | Debug
|
||||||
@@ -286,7 +286,8 @@ optDescr =
|
|||||||
Option [] ["batch"] (NoArg (mode ModeCompiler)) "Run in batch compiler mode.",
|
Option [] ["batch"] (NoArg (mode ModeCompiler)) "Run in batch compiler mode.",
|
||||||
Option [] ["interactive"] (NoArg (mode ModeInteractive)) "Run in interactive mode (default).",
|
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 [] ["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 [] ["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 ['E'] [] (NoArg (phase Preproc)) "Stop after preprocessing (with --preproc).",
|
||||||
Option ['C'] [] (NoArg (phase Convert)) "Stop after conversion to .gf.",
|
Option ['C'] [] (NoArg (phase Convert)) "Stop after conversion to .gf.",
|
||||||
@@ -361,6 +362,12 @@ optDescr =
|
|||||||
]
|
]
|
||||||
where phase x = set $ \o -> o { optStopAfterPhase = x }
|
where phase x = set $ \o -> o { optStopAfterPhase = x }
|
||||||
mode x = set $ \o -> o { optMode = 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
|
verbosity mv = case mv of
|
||||||
Nothing -> set $ \o -> o { optVerbosity = Verbose }
|
Nothing -> set $ \o -> o { optVerbosity = Verbose }
|
||||||
Just v -> case readMaybe v >>= toEnumBounded of
|
Just v -> case readMaybe v >>= toEnumBounded of
|
||||||
|
|||||||
@@ -69,8 +69,8 @@ mainGFI opts files = do
|
|||||||
shell opts files = loop opts =<< importInEnv emptyGFEnv opts files
|
shell opts files = loop opts =<< importInEnv emptyGFEnv opts files
|
||||||
|
|
||||||
#ifdef SERVER_MODE
|
#ifdef SERVER_MODE
|
||||||
mainServerGFI opts0 files =
|
mainServerGFI opts0 port files =
|
||||||
server (execute1 opts) =<< importInEnv emptyGFEnv opts files
|
server port (execute1 opts) =<< importInEnv emptyGFEnv opts files
|
||||||
where opts = beQuiet opts0
|
where opts = beQuiet opts0
|
||||||
#else
|
#else
|
||||||
mainServerGFI opts files =
|
mainServerGFI opts files =
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import RunHTTP(cgiHandler)
|
|||||||
debug s = liftIO (logPutStrLn s)
|
debug s = liftIO (logPutStrLn s)
|
||||||
|
|
||||||
-- | Combined FastCGI and HTTP server
|
-- | Combined FastCGI and HTTP server
|
||||||
server execute1 state0 =
|
server port execute1 state0 =
|
||||||
do --stderrToFile logFile
|
do --stderrToFile logFile
|
||||||
state <- newMVar M.empty
|
state <- newMVar M.empty
|
||||||
cache <- PS.newPGFCache
|
cache <- PS.newPGFCache
|
||||||
@@ -61,7 +61,6 @@ server execute1 state0 =
|
|||||||
++show port++"/ in your web browser."
|
++show port++"/ in your web browser."
|
||||||
initServer port (modifyMVar state . handle state0 cache execute1)
|
initServer port (modifyMVar state . handle state0 cache execute1)
|
||||||
|
|
||||||
port = 41296
|
|
||||||
{-
|
{-
|
||||||
-- | FastCGI request handler
|
-- | FastCGI request handler
|
||||||
handle_fcgi execute1 state0 stateM cache =
|
handle_fcgi execute1 state0 stateM cache =
|
||||||
|
|||||||
Reference in New Issue
Block a user