diff options
-rw-r--r-- | guix/import/stackage.scm | 10 | ||||
-rw-r--r-- | guix/scripts/import/stackage.scm | 19 |
2 files changed, 17 insertions, 12 deletions
diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 542b718083..5b25adc674 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -21,12 +21,13 @@ #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (guix import json) #:use-module (guix import hackage) #:use-module (guix memoization) #:use-module (guix packages) #:use-module (guix upstream) - #:use-module (guix ui) #:export (stackage->guix-package %stackage-updater)) @@ -49,6 +50,9 @@ ((_ ("packages" pkg ...)) pkg) (_ '()))) +(define (leave-with-message fmt . args) + (raise (condition (&message (message (apply format #f fmt args)))))) + (define stackage-lts-info-fetch ;; "Retrieve the information about the LTS Stackage release VERSION." (memoize @@ -59,7 +63,7 @@ (lts-info (json-fetch url))) (if lts-info (reverse lts-info) - (leave (_ "LTS release version not found: ~A~%") version)))))) + (leave-with-message "LTS release version not found: ~a" version)))))) (define (stackage-package-name pkg-info) (assoc-ref pkg-info "name")) @@ -99,7 +103,7 @@ included in the Stackage LTS release." (hackage->guix-package name-version #:include-test-dependencies? include-test-dependencies?) - (leave (_ "package not found: ~A~%") package-name)))) + (leave-with-message "~a: Stackage package not found" package-name)))) ;;; diff --git a/guix/scripts/import/stackage.scm b/guix/scripts/import/stackage.scm index cf47bff259..f91b496d24 100644 --- a/guix/scripts/import/stackage.scm +++ b/guix/scripts/import/stackage.scm @@ -98,15 +98,16 @@ Import and convert the LTS Stackage package for PACKAGE-NAME.\n")) (reverse opts)))) (match args ((package-name) - (let ((sexp (stackage->guix-package - package-name - #:include-test-dependencies? - (assoc-ref opts 'include-test-dependencies?) - #:lts-version (assoc-ref opts 'lts-version)))) - (unless sexp - (leave (_ "failed to download cabal file for package '~a'~%") - package-name)) - sexp)) + (with-error-handling + (let ((sexp (stackage->guix-package + package-name + #:include-test-dependencies? + (assoc-ref opts 'include-test-dependencies?) + #:lts-version (assoc-ref opts 'lts-version)))) + (unless sexp + (leave (_ "failed to download cabal file for package '~a'~%") + package-name)) + sexp))) (() (leave (_ "too few arguments~%"))) ((many ...) |