import: hackage: Handle unknown packages gracefully.
* guix/import/hackage.scm (hackage-fetch): Add 'guard'.
This commit is contained in:
parent
bc5844d149
commit
a4824c60ef
@ -21,6 +21,7 @@
|
||||
(define-module (guix import hackage)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-1)
|
||||
@ -115,12 +116,15 @@ version is returned."
|
||||
"Return the Cabal file for the package NAME-VERSION, or #f on failure. If
|
||||
the version part is omitted from the package name, then return the latest
|
||||
version."
|
||||
(let-values (((name version) (package-name->name+version name-version)))
|
||||
(let* ((url (hackage-cabal-url name version))
|
||||
(port (http-fetch url))
|
||||
(result (read-cabal (canonical-newline-port port))))
|
||||
(close-port port)
|
||||
result)))
|
||||
(guard (c ((and (http-get-error? c)
|
||||
(= 404 (http-get-error-code c)))
|
||||
#f)) ;"expected" if package is unknown
|
||||
(let-values (((name version) (package-name->name+version name-version)))
|
||||
(let* ((url (hackage-cabal-url name version))
|
||||
(port (http-fetch url))
|
||||
(result (read-cabal (canonical-newline-port port))))
|
||||
(close-port port)
|
||||
result))))
|
||||
|
||||
(define string->license
|
||||
;; List of valid values from
|
||||
|
Loading…
Reference in New Issue
Block a user