diff options
author | Federico Beffa <beffa@fbengineering.ch> | 2017-02-11 18:18:45 +0100 |
---|---|---|
committer | Federico Beffa <beffa@fbengineering.ch> | 2017-02-14 08:38:45 +0100 |
commit | 57075ade97e58eded5657ec74e5516d58f15eda6 (patch) | |
tree | b0c753d829f85efb00c6991e8443f3e5f7a3b504 | |
parent | 4fc282b32a16946d423cdbbdd7ee94d025d3b9f5 (diff) |
import: stackage: Avoid using (guix ui) in importer code.
* guix/import/stackage.scm (stackage->guix-package, stackage-lts-info-fetch):
Raise 'message' condition instead of using 'leave' from (guix ui).
* guix/scripts/import/stackage.scm (guix-import-stackage): Handle conditions.
-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 ...) |