source: project/maintenance/chicken-versions.scm @ 15067

Last change on this file since 15067 was 15067, checked in by felix winkelmann, 11 years ago

bug fixes in chicken-versions

  • Property svn:executable set to *
File size: 2.7 KB
Line 
1#!/usr/bin/csi -script
2
3(use versions posix regex utils web-scheme (srfi 1 13 69))
4
5(define snapshots-dir "/var/www/localhost/htdocs/dev-snapshots")
6(define snapshots-output-file "/var/www/localhost/htdocs/dev-snapshots/index.html")
7
8(define (safe-take l n)
9  (if (< (length l) n)
10      l (take l n)))
11
12(let ((data (with-input-from-pipe
13             (string-append "find " snapshots-dir " -name \"chicken-*.tar.gz\" | grep -v linux-x86")
14             read-lines)))
15  (with-output-to-file snapshots-output-file
16    (lambda ()
17      (let* ((versions/dates
18              (map (lambda (item)
19                     (and-let* ((version (string-match  ".*/chicken-([0-9]\\.[0-9]+\\.*[0-9]*)\\.tar\\.gz" item))
20                                (version (string->version (cadr version)))
21                                (date (string-match  ".*/([0-9]{4}/[0-9]{2}/[0-9]{2})/.*" item))
22                                (date (cadr date)))
23                       (cons version date)))
24                   data))
25             (versions (safe-take (sort (delete-duplicates (map car versions/dates)) version>?) 20))
26             (linux-bin (lambda (version) (string-append "chicken-" version "-linux-x86.tar.gz")))
27             ;(win-bin (lambda (version) (string-append "chicken-" version"-mingw32-x86.zip")))
28             (source-tarball (lambda (version) (string-append "chicken-" version ".tar.gz"))))
29        (print
30         (ws:page
31          (string-append
32           (div 'id "header" (h1 "Chicken development snapshots"))
33           (div 'style "float: left;"
34                (ws:make-table
35                 (map (lambda (version)
36                        (let* ((latest (car (sort (filter (lambda (item)
37                                                            (equal? (car item) version))
38                                                          versions/dates)
39                                                  (lambda (a b)
40                                                    (string> (cdr a) (cdr b))))))
41                               (version (car latest))
42                               (version-string (version->string version))
43                               (date (cdr latest))
44                               (local-dir (make-pathname snapshots-dir date))
45                               (fexists? (lambda (file) (let ((path (make-pathname local-dir file)))
46                                                          (file-exists? path))))
47                               (link-to  (lambda (file text)
48                                           (if (and file (fexists? file))
49                                               (a 'href (string-append "http://chicken.wiki.br/dev-snapshots/" 
50                                                                       date "/" file) text)
51                                               (b text)))))
52                          (map link-to 
53                                      `(#f "NEWS" "chicken.pdf" 
54                                           ,(source-tarball version-string) ,(linux-bin version-string))
55                                      `(,version-string "NEWS" "Manual (PDF)" "Source code" "Linux binary"))
56                       
57                        ))
58                      versions)))
59           (div 'style "padding-top: 40px;" 
60                (ws:itemize
61                 `(,(a 'href "http://chicken.wiki.br/binary-distributions" 
62                       "How to install and use binary distributions of Chicken")
63                   ,(a 'href "http://chicken.wiki.br/releases/" 
64                       "Browse releases")))))
65          css-file: "http://galinha.ucpel.tche.br/common-css"
66          page-title: "Chicken development snapshots"
67          ))))))
Note: See TracBrowser for help on using the repository browser.