USING: accessors calendar db db.sqlite db.tuples furnace.alloy furnace.recaptcha.example http.server io.directories io.encodings.ascii io.files io.files.temp io.servers io.sockets.secure.debug kernel namespaces sequences splitting webapps.wiki websites.concatenative ; IN: webapps.wiki.example : wiki-db ( -- db ) "wiki.db" temp-file ; : insert-page ( file-name -- ) dup ".txt" ?tail [ swap ascii file-contents f swap >>content swap >>title "slava" >>author now >>date add-revision ] [ 2drop ] if ; : insert-pages ( -- ) "resource:extra/webapps/wiki/initial-content" [ [ insert-page ] each ] with-directory-files ; : init-wiki-db ( -- ) wiki-db [ init-furnace-tables article ensure-table revision ensure-table insert-pages ] with-db ; : ( -- dispatcher ) wiki-db ; : ( -- threaded-server ) >>secure-config 8080 >>insecure 8431 >>secure ; : run-wiki ( -- ) init-wiki-db main-responder set-global wiki-db start-expiring start-server drop ; MAIN: run-wiki