factor/extra/webapps/mason/utils/utils.factor

56 lines
1.7 KiB
Factor
Raw Normal View History

2010-02-10 22:26:12 -05:00
! Copyright (C) 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays assocs db.tuples furnace.actions
furnace.utilities html.forms kernel mason.server
mason.version.data sequences validators xml.syntax urls ;
2010-02-10 22:26:12 -05:00
IN: webapps.mason.utils
: link ( url label -- xml )
[XML <a href=<->><-></a> XML] ;
: validate-os/cpu ( -- )
{
{ "os" [ v-one-line ] }
{ "cpu" [ v-one-line ] }
} validate-params ;
: current-builder ( -- builder )
builder new "os" value >>os "cpu" value >>cpu select-tuple ;
: current-release ( -- builder )
release new "os" value >>os "cpu" value >>cpu select-tuple ;
: requirements ( builder -- xml )
[
os>> {
{ "winnt" "Windows XP, Windows Vista or Windows 7" }
{ "macosx" "Mac OS X 10.5 Leopard" }
{ "linux" "Ubuntu Linux 9.04 (other distributions may also work)" }
{ "freebsd" "FreeBSD 7.1" }
{ "netbsd" "NetBSD 5.0" }
{ "openbsd" "OpenBSD 4.5" }
} at
] [
dup cpu>> "x86.32" = [
os>> "macosx" =
f "Intel Pentium 4, Core Duo, or other x86 chip with SSE2 support. Note that 32-bit Athlon XP processors do not support SSE2."
?
] [ drop f ] if
] bi
2array sift [ [XML <li><-></li> XML] ] map [XML <ul><-></ul> XML] ;
: download-url ( string -- string' )
"http://downloads.factorcode.org/" prepend ;
: package-url ( builder -- url )
[ URL" $mason-app/package" ] dip
[ os>> "os" set-query-param ]
[ cpu>> "cpu" set-query-param ] bi
adjust-url ;
: release-url ( builder -- url )
[ URL" $mason-app/release" ] dip
[ os>> "os" set-query-param ]
[ cpu>> "cpu" set-query-param ] bi
adjust-url ;