1 ! Copyright (C) 2009, 2010 Slava Pestov.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors furnace.actions furnace.auth furnace.db
4 furnace.redirection http.server.dispatchers urls
5 webapps.mason.backend webapps.mason.grids webapps.mason.package
6 webapps.mason.release webapps.mason.report
7 webapps.mason.downloads webapps.mason.counter
8 webapps.mason.status-update webapps.mason.docs-update
9 webapps.mason.dashboard webapps.mason.make-release
10 webapps.mason.increment-counter ;
13 TUPLE: mason-app < dispatcher ;
15 SYMBOL: build-engineer?
17 build-engineer? define-capability
19 : <mason-protected> ( responder -- responder' )
21 "access the build farm dashboard" >>description
22 { build-engineer? } >>capabilities ;
24 : <mason-app> ( -- dispatcher )
25 mason-app new-dispatcher
27 "report" add-responder
29 <download-package-action>
30 { mason-app "download-package" } >>template
31 "package" add-responder
33 <download-release-action>
34 { mason-app "download-release" } >>template
35 "release" add-responder
38 { mason-app "downloads" } >>template
39 "downloads" add-responder
41 <status-update-action>
42 "status-update" add-responder
45 "docs-update" add-responder
48 "counter" add-responder
52 { mason-app "dashboard" } >>template
55 <make-release-action> <mason-protected>
56 "make-release" add-responder
58 <increment-counter-action> <mason-protected>
59 "increment-counter" add-responder
61 "dashboard" add-responder
64 [ URL" $mason-app/dashboard" <redirect> ] >>display