factor-work/triangle-beer-league/triangle-beer-league.factor

50 lines
1.4 KiB
Factor

USING: accessors namespaces ;
USING: io.sockets.secure io.servers ;
USING: furnace.actions furnace.boilerplate ;
USING: http.server http.server.dispatchers http.server.static ;
IN: triangle-beer-league
SYMBOLS: key-password key-file dh-file ;
TUPLE: tbl < dispatcher ;
: <splash-action> ( -- action )
<page-action>
{ tbl "tbl" } >>template ;
: <schedule-action> ( -- action )
<page-action>
{ tbl "schedule" } >>template ;
: <tbl-website> ( -- responder )
tbl new-dispatcher
! "resource:work/triangle-beer-league/schedule" <static> enable-fhtml >>default
"resource:work/triangle-beer-league" <static> enable-fhtml >>default ;
! <splash-action> "" add-responder
! <schedule-action> "schedule" add-responder
! "resource:work/triangle-beer-league" <static> >>default
! <boilerplate> { tbl "tbl-common" } >>template ;
: init-testing ( -- )
"vocab:openssl/test-1.2/dh2048.pem" dh-file set-global
"vocab:openssl/test-1.2/server.pem" key-file set-global
"password" key-password set-global
<tbl-website>
main-responder set-global ;
: <tbl-secure-config> ( -- config )
<secure-config>
key-file get >>key-file
dh-file get >>dh-file
key-password get >>password ;
: <tbl-website-server> ( -- threaded-server )
<http-server>
<tbl-secure-config> >>secure-config
8080 >>insecure
8431 >>secure ;
: start-tbl-site ( -- server )
<tbl-website-server> start-server ;