summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2017-10-11 11:59:20 +0100
committerChristopher Baines <mail@cbaines.net>2017-10-15 19:02:43 +0100
commitdd2de2842344ede8e92459fe66c5a45ca3dc40ff (patch)
tree79756755718465e1481b84197706c372b23673e1
parent791cfa672d1b0eda29634f603177d1bede5b419a (diff)
downloadguix-dd2de2842344ede8e92459fe66c5a45ca3dc40ff.tar.gz
emacs-build-system: Handle missing programs when patching.
Previously the string-append here would error, which isn't useful as it
doesn't tell you which command couldn't be found. To make the error
actionable, catch it earlier, and explicitly error.

* guix/build/emacs-build-system.scm (patch-el-files): Handle (which cmd)
  returning #f.
-rw-r--r--guix/build/emacs-build-system.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index 2404dbddb4..1474c80dd3 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -92,8 +92,12 @@ store in '.el' files."
          (el-dir (string-append out %install-suffix "/" elpa-name-ver))
          (substitute-cmd (lambda ()
                            (substitute* (find-files "." "\\.el$")
-                             (("\"/bin/([^.].*)\"" _ cmd)
-                              (string-append "\"" (which cmd) "\""))))))
+                             (("\"/bin/([^.].*)\"" _ cmd-name)
+                              (let ((cmd (which cmd-name)))
+                                (unless cmd
+                                  (error
+                                   "patch-el-files: unable to locate " cmd-name))
+                                (string-append "\"" cmd "\"")))))))
     (with-directory-excursion el-dir
       ;; Some old '.el' files (e.g., tex-buf.el in AUCTeX) are still encoded
       ;; with the "ISO-8859-1" locale.