[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/03: import: hackage: Handle unknown packages gracefully.
From: |
Federico Beffa |
Subject: |
03/03: import: hackage: Handle unknown packages gracefully. |
Date: |
Thu, 9 Feb 2017 13:36:53 -0500 (EST) |
beffa pushed a commit to branch master
in repository guix.
commit a4824c60ef5ffc0cae3771a16524287904a1c8bd
Author: Federico Beffa <address@hidden>
Date: Thu Feb 9 17:05:41 2017 +0100
import: hackage: Handle unknown packages gracefully.
* guix/import/hackage.scm (hackage-fetch): Add 'guard'.
---
guix/import/hackage.scm | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 4d01ed2..2c9df07 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -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