guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: import/elpa: Abort early on failure to fetch meta data.


From: guix-commits
Subject: 01/02: import/elpa: Abort early on failure to fetch meta data.
Date: Thu, 31 Dec 2020 09:53:25 -0500 (EST)

rekado pushed a commit to branch master
in repository guix.

commit f249af3086ce420d73feb385a4120f15210285fd
Author: Ricardo Wurmus <rekado@elephly.net>
AuthorDate: Thu Dec 31 15:50:48 2020 +0100

    import/elpa: Abort early on failure to fetch meta data.
    
    * guix/import/elpa.scm (elpa->guix-package): Raise condition instead of
    returning #FALSE.
    * guix/scripts/import/elpa.scm (guix-import-elpa): Handle conditions when
    importing recursively.
---
 guix/import/elpa.scm         | 10 +++++++++-
 guix/scripts/import/elpa.scm | 15 ++++++++-------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm
index 8922e57..1d586ac 100644
--- a/guix/import/elpa.scm
+++ b/guix/import/elpa.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +30,8 @@
   #:use-module (srfi srfi-9 gnu)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module ((guix download) #:select (download-to-store))
   #:use-module (guix import utils)
   #:use-module (guix http-client)
@@ -392,7 +395,12 @@ type '<elpa-package>'."
 (define* (elpa->guix-package name #:key (repo 'gnu) version)
   "Fetch the package NAME from REPO and produce a Guix package S-expression."
   (match (fetch-elpa-package name repo)
-    (#f #f)
+    (#false
+     (raise (condition
+             (&message
+              (message (format #false
+                               "couldn't find meta-data for ELPA package `~a'."
+                               name))))))
     (package
       ;; ELPA is known to contain only GPLv3+ code.  Other repos may contain
       ;; code under other license but there's no license metadata.
diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm
index 07ac07a..d6b38e5 100644
--- a/guix/scripts/import/elpa.scm
+++ b/guix/scripts/import/elpa.scm
@@ -96,13 +96,14 @@ Import the latest package named PACKAGE-NAME from an ELPA 
repository.\n"))
     (match args
       ((package-name)
        (if (assoc-ref opts 'recursive)
-           (map (match-lambda
-                  ((and ('package ('name name) . rest) pkg)
-                   `(define-public ,(string->symbol name)
-                      ,pkg))
-                  (_ #f))
-                (elpa-recursive-import package-name
-                                       (or (assoc-ref opts 'repo) 'gnu)))
+           (with-error-handling
+             (map (match-lambda
+                    ((and ('package ('name name) . rest) pkg)
+                     `(define-public ,(string->symbol name)
+                        ,pkg))
+                    (_ #f))
+                  (elpa-recursive-import package-name
+                                         (or (assoc-ref opts 'repo) 'gnu))))
            (let ((sexp (elpa->guix-package package-name
                                            #:repo (assoc-ref opts 'repo))))
              (unless sexp



reply via email to

[Prev in Thread] Current Thread [Next in Thread]