~ruther/guix-local

a4824c60ef5ffc0cae3771a16524287904a1c8bd — Federico Beffa 9 years ago bc5844d
import: hackage: Handle unknown packages gracefully.

* guix/import/hackage.scm (hackage-fetch): Add 'guard'.
1 files changed, 10 insertions(+), 6 deletions(-)

M guix/import/hackage.scm
M guix/import/hackage.scm => guix/import/hackage.scm +10 -6
@@ 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