diff --git a/src/server/pgf-http.hs b/src/server/pgf-http.hs index ff356c6e7..565843047 100644 --- a/src/server/pgf-http.hs +++ b/src/server/pgf-http.hs @@ -2,23 +2,34 @@ import Network.CGI(requestMethod,getVarWithDefault,logCGI,handleErrors,liftIO) import System.Environment(getArgs) import System.Directory(getDirectoryContents) -import System.FilePath(takeExtension,takeFileName,takeDirectory) +import System.FilePath(takeExtension,takeFileName,takeDirectory,()) -import RunHTTP(runHTTP) +import RunHTTP(runHTTP,Options(..)) import ServeStaticFile(serveStaticFile) import PGFService(cgiMain',getPath,stderrToFile,logFile,newPGFCache) import FastCGIUtils(outputJSONP,handleCGIErrors) +import Paths_gf_server(getDataDir) + main :: IO () -main = do stderrToFile logFile +main = do datadir <- getDataDir + let defaults = Options { documentRoot = datadir"www", + port = 41296 } cache <- newPGFCache args <- getArgs - port <- case args of - [] -> return 41296 - [port] -> readIO port - httpMain cache port + options <- case args of + [] -> return defaults + [port] -> do p <- readIO port + return defaults{port=p} + putStrLn $ "Starting HTTP server, open http://localhost:" + ++show (port options)++"/ in your web browser.\n" + print options + putStrLn $ "logFile="++logFile + stderrToFile logFile + httpMain cache options -httpMain cache port = runHTTP port (do log ; serve =<< getPath) + +httpMain cache options = runHTTP options (do log ; serve =<< getPath) where log = do method <- requestMethod uri <- getVarWithDefault "REQUEST_URI" "-"