2008-02-07 18:55:31 -05:00
|
|
|
! Copyright (C) 2008 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
IN: bootstrap.image.download
|
2008-05-12 23:30:11 -04:00
|
|
|
USING: http.client checksums checksums.openssl splitting assocs
|
2008-04-30 17:11:55 -04:00
|
|
|
kernel io.files bootstrap.image sequences io ;
|
2008-02-07 18:55:31 -05:00
|
|
|
|
|
|
|
: url "http://factorcode.org/images/latest/" ;
|
|
|
|
|
|
|
|
: download-checksums ( -- alist )
|
|
|
|
url "checksums.txt" append http-get
|
|
|
|
string-lines [ " " split1 ] { } map>assoc ;
|
|
|
|
|
|
|
|
: need-new-image? ( image -- ? )
|
|
|
|
dup exists?
|
2008-05-12 23:30:11 -04:00
|
|
|
[
|
|
|
|
[ openssl-md5 checksum-file hex-string ]
|
|
|
|
[ download-checksums at ]
|
|
|
|
bi = not
|
|
|
|
] [ drop t ] if ;
|
2008-02-07 18:55:31 -05:00
|
|
|
|
|
|
|
: download-image ( arch -- )
|
|
|
|
boot-image-name dup need-new-image? [
|
|
|
|
"Downloading " write dup write "..." print
|
2008-03-19 20:15:32 -04:00
|
|
|
url prepend download
|
2008-02-07 18:55:31 -05:00
|
|
|
] [
|
|
|
|
"Boot image up to date" print
|
|
|
|
drop
|
|
|
|
] if ;
|
2008-02-09 01:16:24 -05:00
|
|
|
|
|
|
|
: download-my-image ( -- ) my-arch download-image ;
|
|
|
|
|
|
|
|
MAIN: download-my-image
|