discovery: Hide Guile warnings when loading modules.

Fixes <https://issues.guix.gnu.org/43747>.

* guix/discovery.scm (scheme-modules): Parameterize 'current-warning-port'.
This commit is contained in:
Ludovic Courtès 2021-09-30 10:16:02 +02:00
parent 270b30705d
commit bedcba8f5c
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -107,6 +107,12 @@ (define* (scheme-modules directory #:optional sub-directory
(define prefix-len
(string-length directory))
;; Hide Guile warnings such as "source file [...] newer than compiled" when
;; loading user code, unless we're hacking on Guix proper. See
;; <https://issues.guix.gnu.org/43747>.
(parameterize ((current-warning-port (if (getenv "GUIX_UNINSTALLED")
(current-warning-port)
(%make-void-port "w"))))
(filter-map (lambda (file)
(let* ((relative (string-drop file prefix-len))
(module (file-name->module-name relative)))
@ -119,7 +125,7 @@ (module (file-name->module-name relative)))
#f))))
(scheme-files (if sub-directory
(string-append directory "/" sub-directory)
directory))))
directory)))))
(define* (scheme-modules* directory #:optional sub-directory)
"Return the list of module names found under SUB-DIRECTORY in DIRECTORY.