summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2010-12-17 16:35:59 +0000
committerhallgren <hallgren@chalmers.se>2010-12-17 16:35:59 +0000
commit2e6269ddb4c8189ebef50a9d82f642733b291f5a (patch)
tree7cddcb0e0817a8560216508d5749f618c3460730 /src/server
parent7ebdacc8844a0c1bd9fd8d1a98de57f1c7fe2d2a (diff)
pgf-http now uses $datadir/www instead of ./www as the document root
Along with the changes to Setup.hs it should now be enough to do cabal install pgf-http open http://localhost:41296/ to run the PGF service locally and play with some example grammars in minibar.
Diffstat (limited to 'src/server')
-rw-r--r--src/server/pgf-http.hs27
1 files changed, 19 insertions, 8 deletions
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" "-"