! 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
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 ;