1
0
forked from GitHub/gf-core

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.
This commit is contained in:
hallgren
2011-04-13 14:58:01 +00:00
parent 8fed629a3e
commit 0a27aaf1e6
5 changed files with 175 additions and 5 deletions

View File

@@ -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