]> gitweb.factorcode.org Git - factor.git/blob - extra/webapps/factor-website/factor-website.factor
Fixing everything for mandatory stack effects
[factor.git] / extra / webapps / factor-website / factor-website.factor
1 ! Copyright (c) 2008 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors kernel sequences assocs io.files io.sockets
4 io.server
5 namespaces db db.sqlite smtp
6 http.server
7 http.server.dispatchers
8 furnace.db
9 furnace.asides
10 furnace.flash
11 furnace.sessions
12 furnace.auth.login
13 furnace.auth.providers.db
14 furnace.boilerplate
15 webapps.blogs
16 webapps.pastebin
17 webapps.planet
18 webapps.todo
19 webapps.wiki
20 webapps.wee-url
21 webapps.user-admin ;
22 IN: webapps.factor-website
23
24 : test-db ( -- db params ) "resource:test.db" sqlite-db ;
25
26 : init-factor-db ( -- )
27     test-db [
28         init-users-table
29         init-sessions-table
30
31         init-pastes-table
32         init-annotations-table
33
34         init-blog-table
35         init-postings-table
36
37         init-todo-table
38
39         init-articles-table
40         init-revisions-table
41
42         init-postings-table
43         init-comments-table
44
45         init-short-url-table
46     ] with-db ;
47
48 TUPLE: factor-website < dispatcher ;
49
50 : <factor-website> ( -- responder )
51     factor-website new-dispatcher
52         <blogs> "blogs" add-responder
53         <todo-list> "todo" add-responder
54         <pastebin> "pastebin" add-responder
55         <planet-factor> "planet" add-responder
56         <wiki> "wiki" add-responder
57         <wee-url> "wee-url" add-responder
58         <user-admin> "user-admin" add-responder
59     <login>
60         users-in-db >>users
61         allow-registration
62         allow-password-recovery
63         allow-edit-profile
64     <boilerplate>
65         { factor-website "page" } >>template
66     <asides> <flash-scopes> <sessions>
67     test-db <db-persistence> ;
68
69 : init-factor-website ( -- )
70     "factorcode.org" 25 <inet> smtp-server set-global
71     "todo@factorcode.org" lost-password-from set-global
72
73     init-factor-db
74
75     <factor-website> main-responder set-global ;
76
77 : start-factor-website ( -- )
78     test-db start-expiring-sessions
79     test-db start-update-task
80     8812 httpd ;