create download page for (version, distro) only when installers exist

Previously, created every page in (all-versions X all-distros).
(cherry picked from commit 202dc90d96)
This commit is contained in:
Ryan Culpepper 2014-01-06 02:30:17 -05:00
parent 00ffd1e603
commit bb47f923f7

View File

@ -100,6 +100,14 @@
(define (cell rel pkg) (define (cell rel pkg)
@td[align: 'center]{ @td[align: 'center]{
@nbsp @(make-page rel pkg){[download]} @nbsp}) @nbsp @(make-page rel pkg){[download]} @nbsp})
;; release=>packages : hash[release => (listof package)]
;; Indicates what packages actually exist (have installers) for a given release.
(define release=>packages (make-hash))
(for ([i (in-list all-installers)])
(define r (installer-release i))
(define prev-packages (hash-ref release=>packages r null))
(unless (member (installer-package i) prev-packages)
(hash-set! release=>packages r (cons (installer-package i) prev-packages))))
@tbody{ @tbody{
@sep @sep
@(for/list ([r (in-list all-releases)]) @(for/list ([r (in-list all-releases)])
@ -108,7 +116,10 @@
@tr[class: 'version-row]{ @tr[class: 'version-row]{
@td{@|nbsp nbsp| @strong{Version @ver}, @td{@|nbsp nbsp| @strong{Version @ver},
@(release-page r){@release-date-string[r]} @nbsp} @(release-page r){@release-date-string[r]} @nbsp}
@(map (λ (p) (cell r p)) all-packages) @(for/list ([p (in-list all-packages)])
(if (member p (hash-ref release=>packages r))
(cell r p)
@td[]))
@td{@nbsp @a[href: @list{@|docs|/@|ver|/html}]{[HTML]} @; @td{@nbsp @a[href: @list{@|docs|/@|ver|/html}]{[HTML]} @;
@nbsp @a[href: @list{@|docs|/@|ver|/pdf}]{[PDF]} @; @nbsp @a[href: @list{@|docs|/@|ver|/pdf}]{[PDF]} @;
@nbsp}} @nbsp}}