1 ! Copyright (C) 2015 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
4 USING: accessors command-line concurrency.messaging http.server
5 http.server.cgi http.server.static io io.pathnames io.servers
6 kernel logging.server namespaces sequences threads ;
10 : file-server-logging ( quot -- )
15 dup first "log-message" = [
16 dup last "http.server" = [
17 dup rest first3 write-message flush
21 "log-server" get-global send t
22 ] "Log server (file-server)" spawn-server "log-server" [
24 ] with-variable ; inline
26 : file-server-args ( command-line -- cgi? path/f )
27 "--cgi" swap [ member? ] [ remove ?first ] 2bi ;
29 : file-server-main ( -- )
31 command-line get file-server-args "." or
34 swap [ enable-cgi ] when
35 main-responder set-global
36 8080 httpd wait-for-server
37 ] file-server-logging ;
39 MAIN: file-server-main