]> gitweb.factorcode.org Git - factor.git/commitdiff
file-server: allow serving CGI using --cgi.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 21 Apr 2015 00:37:25 +0000 (17:37 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 21 Apr 2015 00:37:25 +0000 (17:37 -0700)
extra/file-server/file-server.factor

index 464aabd88905d2653bd7f08ee9248ec37fe97fa0..e9da5a61ee9e28932fbb065dcf9a7719f5d5b806 100644 (file)
@@ -2,8 +2,8 @@
 ! See http://factorcode.org/license.txt for BSD license
 
 USING: accessors command-line concurrency.messaging http.server
-http.server.static io io.pathnames io.servers kernel
-logging.server namespaces sequences threads ;
+http.server.cgi http.server.static io io.pathnames io.servers
+kernel logging.server namespaces sequences threads ;
 
 IN: file-server
 
@@ -23,11 +23,16 @@ IN: file-server
         call
     ] with-variable ; inline
 
+: file-server-args ( command-line -- cgi? path/f )
+    "--cgi" swap [ member? ] [ remove ?first ] 2bi ;
+
 : file-server-main ( -- )
     [
-        command-line get ?first current-directory get or
+        command-line get file-server-args
+        current-directory get or
         <static>
             t >>allow-listings
+        swap [ enable-cgi ] when
         main-responder set-global
         8080 httpd wait-for-server
     ] file-server-logging ;