summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/GFServer.hs19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/compiler/GFServer.hs b/src/compiler/GFServer.hs
index ae71b82b9..d08388dd5 100644
--- a/src/compiler/GFServer.hs
+++ b/src/compiler/GFServer.hs
@@ -1,15 +1,14 @@
-- | GF server mode
{-# LANGUAGE CPP #-}
module GFServer(server) where
-import Data.List(partition,stripPrefix,tails,isInfixOf)
-import Data.Maybe(mapMaybe)
+import Data.List(partition,stripPrefix,isInfixOf)
import qualified Data.Map as M
import Control.Monad(when)
import Control.Monad.State(StateT(..),get,gets,put)
import Control.Monad.Error(ErrorT(..),Error(..))
import System.Random(randomRIO)
-import System.IO(stdout,stderr,hPutStrLn)
-import System.IO.Error(try,ioError,isAlreadyExistsError)
+import System.IO(stderr,hPutStrLn)
+import System.IO.Error(try,isAlreadyExistsError)
import System.Directory(doesDirectoryExist,doesFileExist,createDirectory,
setCurrentDirectory,getCurrentDirectory,
getDirectoryContents,removeFile,removeDirectory)
@@ -19,13 +18,13 @@ import System.FilePath(dropExtension,takeExtension,takeFileName,takeDirectory,
import System.Posix.Files(getSymbolicLinkStatus,isSymbolicLink,removeLink,
createSymbolicLink)
#endif
-import Control.Concurrent(newMVar,modifyMVar,forkIO)
-import Network.URI(URI(..),parseURI)
+import Control.Concurrent(newMVar,modifyMVar)
+import Network.URI(URI(..))
import Network.Shed.Httpd(initServer,Request(..),Response(..),queryToArguments,
noCache)
--import qualified Network.FastCGI as FCGI -- from hackage direct-fastcgi
import Network.CGI(handleErrors,liftIO)
-import FastCGIUtils(outputJSONP,handleCGIErrors,stderrToFile)
+import FastCGIUtils(handleCGIErrors)--,outputJSONP,stderrToFile
import Text.JSON(encode,showJSON,makeObj)
--import System.IO.Silently(hCapture)
import System.Process(readProcessWithExitCode)
@@ -61,13 +60,14 @@ server port execute1 state0 =
where
-- | HTTP server
http_server execute1 state0 state cache root =
- do putStrLn $ "This is GF version "++showVersion version++"."
- putStrLn buildInfo
+ do putStrLn gf_version
putStrLn $ "Document root = "++root
putStrLn $ "Starting HTTP server, open http://localhost:"
++show port++"/ in your web browser."
initServer port (modifyMVar state . handle state0 cache execute1)
+gf_version = "This is GF version "++showVersion version++".\n"++buildInfo
+
{-
-- | FastCGI request handler
handle_fcgi execute1 state0 stateM cache =
@@ -139,6 +139,7 @@ handle state0 cache execute1
"/gfshell" -> inDir command
"/parse" -> parse (decoded qs)
"/cloud" -> inDir cloud
+ "/version" -> return (ok200 gf_version)
'/':rpath ->
case (takeDirectory path,takeFileName path,takeExtension path) of
(_ ,_ ,".pgf") -> wrapCGI $ PS.cgiMain' cache path