1 ! Copyright (C) 2010 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors arrays assocs db.tuples furnace.actions
4 furnace.utilities html.forms kernel mason.config namespaces
5 sequences urls validators webapps.mason.backend
6 webapps.mason.version.data xml.syntax ;
7 IN: webapps.mason.utils
9 : link ( url label -- xml )
10 [XML <a href=<->><-></a> XML] ;
12 : validate-os/cpu ( -- )
14 { "os" [ v-one-line ] }
15 { "cpu" [ v-one-line ] }
18 : current-builder ( -- builder/f )
19 builder new "os" value >>os "cpu" value >>cpu select-tuple ;
21 : current-release ( -- builder/f )
22 release new "os" value >>os "cpu" value >>cpu select-tuple ;
24 : requirements ( builder -- xml )
27 { "windows" "Windows XP, Windows Vista or Windows 7" }
28 { "macosx" "Mac OS X 10.5 Leopard" }
29 { "linux" "Ubuntu Linux 9.04 (other distributions may also work)" }
32 dup cpu>> "x86.32" = [
34 f "Intel Pentium 4, Core Duo, or other x86 chip with SSE2 support. Note that 32-bit Athlon XP processors do not support SSE2."
38 2array sift [ [XML <li><-></li> XML] ] map [XML <ul><-></ul> XML] ;
40 : download-url ( string -- string' )
41 "http://downloads.factorcode.org/" prepend ;
43 : platform-url ( url builder -- url )
44 [ os>> "os" set-query-param ]
45 [ cpu>> "cpu" set-query-param ] bi
48 : package-url ( builder -- url )
49 [ URL" http://builds.factorcode.org/package" clone ] dip
52 : report-url ( builder -- url )
53 [ URL" http://builds.factorcode.org/report" clone ] dip
56 : release-url ( builder -- url )
57 [ URL" http://builds.factorcode.org/release" clone ] dip
60 : validate-secret ( -- )
61 { { "secret" [ v-one-line ] } } validate-params
62 "secret" value status-secret get =
63 [ validation-failed ] unless ;