meta/new-web: handle versionless source variant
Although a versionless variant of the source bundle is available, we leave it off the web page, because it's intended for automatic processes.
This commit is contained in:
parent
fe12e93192
commit
698c22ef9d
|
@ -216,26 +216,29 @@
|
|||
"([0-9p.]+)" ; version
|
||||
"/(" ; file
|
||||
"(racket(?:-textual|-minimal)?)" ; package
|
||||
"-\\3-" ; -<version>-
|
||||
"(-\\3)?-" ; version, maybe
|
||||
"([^.]+)" ; platform
|
||||
"\\."
|
||||
"([a-z]+)" ; suffix
|
||||
"))$")))
|
||||
|
||||
(define (make-installer2 size path version file package platform suffix)
|
||||
(define (make-installer2 size path version file package version-again platform suffix)
|
||||
(define binary? (not (regexp-match #rx"^src" platform)))
|
||||
(installer path file (version->release version) (string->number size)
|
||||
(string->symbol package) binary? platform suffix))
|
||||
|
||||
(and version-again ; if no version again, then it's a versionless variant to omit
|
||||
(installer path file (version->release version) (string->number size)
|
||||
(string->symbol package) binary? platform suffix)))
|
||||
|
||||
(define (parse-installers in)
|
||||
(port-count-lines! in)
|
||||
(for/list ([line (in-lines in)] [num (in-naturals 1)])
|
||||
(cond [(regexp-match installer-rx1 line)
|
||||
=> (lambda (m) (apply make-installer1 (cdr m)))]
|
||||
[(regexp-match installer-rx2 line)
|
||||
=> (lambda (m) (apply make-installer2 (cdr m)))]
|
||||
[else (error 'installers "bad installer data line#~a: ~s"
|
||||
num line)])))
|
||||
(filter
|
||||
values
|
||||
(for/list ([line (in-lines in)] [num (in-naturals 1)])
|
||||
(cond [(regexp-match installer-rx1 line)
|
||||
=> (lambda (m) (apply make-installer1 (cdr m)))]
|
||||
[(regexp-match installer-rx2 line)
|
||||
=> (lambda (m) (apply make-installer2 (cdr m)))]
|
||||
[else (error 'installers "bad installer data line#~a: ~s"
|
||||
num line)]))))
|
||||
|
||||
(define (order->precedes order)
|
||||
(define =? (car order))
|
||||
|
|
Loading…
Reference in New Issue
Block a user