ui: Improve error reporting for 'read/eval'.
The effect is visible on commands like: guix build -e '(+ 2 "foo")' guix build -e '()' * guix/ui.scm (read/eval): Change handler to properly report syntax errors and use 'display-error' for other errors.master
parent
cdb5b075d5
commit
41766807d0
10
guix/ui.scm
10
guix/ui.scm
|
@ -446,8 +446,14 @@ interpreted."
|
|||
(lambda ()
|
||||
(eval exp (force %guix-user-module)))
|
||||
(lambda args
|
||||
(leave (_ "failed to evaluate expression `~a': ~s~%")
|
||||
exp args)))))
|
||||
(report-error (_ "failed to evaluate expression '~a':~%") exp)
|
||||
(match args
|
||||
(('syntax-error proc message properties form . rest)
|
||||
(report-error (_ "syntax error: ~a~%") message))
|
||||
((error args ...)
|
||||
(apply display-error #f (current-error-port) args))
|
||||
(what? #f))
|
||||
(exit 1)))))
|
||||
|
||||
(define (read/eval-package-expression str)
|
||||
"Read and evaluate STR and return the package it refers to, or exit an
|
||||
|
|
Reference in New Issue