packages: Issue a warning unless the snippet returns #t.

* guix/packages.scm (patch-and-repack): Issue a warning if the snippet
returns a value other than #t.
This commit is contained in:
Mark H Weaver 2018-03-16 07:24:05 -04:00
parent 2a69f48e0f
commit daac9c77b9
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
1 changed files with 20 additions and 13 deletions

View File

@ -566,7 +566,7 @@ specifies modules in scope when evaluating SNIPPET."
(for-each apply-patch '#+patches) (for-each apply-patch '#+patches)
(unless #+(if snippet (let ((result #+(if snippet
#~(let ((module (make-fresh-user-module))) #~(let ((module (make-fresh-user-module)))
(module-use-interfaces! (module-use-interfaces!
module module
@ -576,9 +576,16 @@ specifies modules in scope when evaluating SNIPPET."
#:to 'value #:to 'value
#:opts %auto-compilation-options #:opts %auto-compilation-options
#:env module)) #:env module))
#~#t) #~#t)))
(format (current-error-port) ;; Issue a warning unless the result is #t.
"snippet returned false, indicating failure~%")) (unless (eqv? result #t)
(format (current-error-port) "\
## WARNING: the snippet returned `~s'. Return values other than #t
## are deprecated. Please migrate this package so that its snippet
## reports errors by raising an exception, and otherwise returns #t.~%"
result))
(unless result
(error "snippet returned false")))
(chdir "..") (chdir "..")