gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs.
This reinstate commit a5b5df7f7f
with a fix to
the inner expand-uri procedure.
master
parent
a9d5d1d9dd
commit
2a7f031ca9
|
@ -975,17 +975,24 @@ updater."
|
||||||
((url-predicate http-url?) package)))
|
((url-predicate http-url?) package)))
|
||||||
|
|
||||||
(define* (import-html-updatable-release package #:key (version #f))
|
(define* (import-html-updatable-release package #:key (version #f))
|
||||||
"Return the latest release of PACKAGE. Do that by crawling the HTML page of
|
"Return the latest release of PACKAGE else #f. Do that by crawling the HTML
|
||||||
the directory containing its source tarball. Optionally include a VERSION
|
page of the directory containing its source tarball. Optionally include a
|
||||||
string to fetch a specific version."
|
VERSION string to fetch a specific version."
|
||||||
(let* ((uri (string->uri
|
|
||||||
(match (origin-uri (package-source package))
|
(define (expand-uri uri)
|
||||||
((and (? string?)
|
(match uri
|
||||||
(? (cut string-prefix? "mirror://" <>) url))
|
((and (? string?) (? (cut string-prefix? "mirror://" <>) url))
|
||||||
;; Retrieve the authoritative HTTP URL from a mirror.
|
;; Retrieve the authoritative HTTP URL from a mirror.
|
||||||
(http-url? url))
|
(http-url? url))
|
||||||
((? string? url) url)
|
((? string? url)
|
||||||
((url _ ...) url))))
|
url)
|
||||||
|
((url _ ...)
|
||||||
|
;; This case is for when the URI is a list of possibly
|
||||||
|
;; mirror URLs as well as HTTP URLs.
|
||||||
|
(expand-uri url))))
|
||||||
|
|
||||||
|
(let* ((uri (string->uri
|
||||||
|
(expand-uri (origin-uri (package-source package)))))
|
||||||
(custom (assoc-ref (package-properties package)
|
(custom (assoc-ref (package-properties package)
|
||||||
'release-monitoring-url))
|
'release-monitoring-url))
|
||||||
(base (or custom
|
(base (or custom
|
||||||
|
|
Reference in New Issue