diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-04-07 22:27:45 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-04-07 22:28:36 +0200 |
commit | 4ae7559fd62c03a800b010c228639f18b9f58006 (patch) | |
tree | 70b5a9f9f214993fdad29018ed10835a951090d0 /gnu/packages.scm | |
parent | 1151f6aeae281ae391f925f5cee086f1c2a0728a (diff) | |
download | guix-4ae7559fd62c03a800b010c228639f18b9f58006.tar guix-4ae7559fd62c03a800b010c228639f18b9f58006.tar.gz |
gnu: Emit a warning when a package module cannot be loaded.
* guix/ui.scm (warn-about-load-error): New procedure.
* gnu/packages.scm (package-modules): Wrap 'resolve-interface' call in
'catch #t', and call 'warn-about-load-error' in handler.
Diffstat (limited to 'gnu/packages.scm')
-rw-r--r-- | gnu/packages.scm | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gnu/packages.scm b/gnu/packages.scm index 57a3e21bd6..2216c0df8c 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -160,9 +160,15 @@ Optionally, narrow the search to SUB-DIRECTORY." (string-length directory)) (filter-map (lambda (file) - (let ((file (substring file prefix-len))) - (false-if-exception - (resolve-interface (file-name->module-name file))))) + (let* ((file (substring file prefix-len)) + (module (file-name->module-name file))) + (catch #t + (lambda () + (resolve-interface module)) + (lambda args + ;; Report the error, but keep going. + (warn-about-load-error module args) + #f)))) (scheme-files (if sub-directory (string-append directory "/" sub-directory) directory)))) |