import: hackage: Handle unknown packages gracefully.
* guix/import/hackage.scm (hackage-fetch): Add 'guard'.
This commit is contained in:
		
							parent
							
								
									bc5844d149
								
							
						
					
					
						commit
						a4824c60ef
					
				
					 1 changed files with 10 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -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."
 | 
			
		||||
  (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)))
 | 
			
		||||
        result))))
 | 
			
		||||
 | 
			
		||||
(define string->license
 | 
			
		||||
  ;; List of valid values from
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue