channels: Print backtrace when generating package cache fails.

* guix/channels.scm (package-cache-file): Add a throw handler around
the generate-package-cache call, and print backtrace in it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Josselin Poiret 2022-06-11 18:59:38 +02:00 committed by Ludovic Courtès
parent c48c69cfa3
commit f404112007
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -907,7 +907,14 @@ (define build
(format (current-error-port)
"Generating package cache for '~a'...~%"
#$profile)
(generate-package-cache #$output))
;; This script runs through (primitive-load), which by default
;; doesn't print backtraces when it encounters an exception,
;; so manually do it. Use with-throw-handler because it is
;; supported by all Guile versions.
(with-throw-handler #t
(lambda () (generate-package-cache #$output))
(lambda (key . args)
(backtrace))))
(mkdir #$output))))
(gexp->derivation-in-inferior "guix-package-cache" build