summaryrefslogtreecommitdiff
path: root/gf.cabal
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-04-13 14:58:01 +0000
committerhallgren <hallgren@chalmers.se>2011-04-13 14:58:01 +0000
commit0a27aaf1e6823ea2c81f91265e97d98d2d20d9ea (patch)
tree7b98e8182fc586dd10fad51ffa58163f9e66b1d3 /gf.cabal
parent8fed629a3ef9d8078e2492f01c4296b464e125ab (diff)
Added a preliminary "gf -server" mode.
The command "gf -server" now starts a simple HTTP server on port 41295, providing a simple web API to the GF compiler. It currently support the follwing operations: * creating new temporary directories for grammar uploads, * uploading grammars files for use in the GF shell, * executing GF shell commands, and * accessing static files. This means that GF now depends on some additional networking related packages, but they should be available and easy to install on all platforms. There is also a new configuration flag "server" in gf.cabal, so GF will be compiled without support for server mode if the extra packages are unavailable. Note that running gf -server while connected to the internet can be a security risk. To prevent unauthorized access to the rest of the system, it is advisable to run the server in GF_RESTRICTED mode and as a user with suitably restricted file permissions.
Diffstat (limited to 'gf.cabal')
-rw-r--r--gf.cabal8
1 files changed, 8 insertions, 0 deletions
diff --git a/gf.cabal b/gf.cabal
index acd1ac2e3..6a5a27441 100644
--- a/gf.cabal
+++ b/gf.cabal
@@ -19,6 +19,10 @@ flag interrupt
Description: Enable Ctrl+Break in the shell
Default: True
+flag server
+ Description: Include --server mode
+ Default: True
+
library
build-depends: base >= 4.2 && <5,
array,
@@ -82,6 +86,10 @@ executable gf
pretty,
mtl,
haskeline
+ if flag(server)
+ build-depends: httpd-shed, network, silently, utf8-string
+ cpp-options: -DSERVER_MODE
+ other-modules: GFServer
build-tools: happy, alex
if os(windows)
build-depends: Win32