~ruther/guix-local

5a5e34e3588e863de0028523ada61041e78cf8c6 — Ludovic Courtès 8 years ago 0e3c852
offload: 'test' gracefully handles 'node-repl-error'.

Fixes <https://bugs.gnu.org/28057>.
Reported by Ricardo Wurmus <rekado@elephly.net>.

* guix/scripts/offload.scm (assert-node-has-guix): Catch
'node-repl-error' and call 'leave'.
1 files changed, 17 insertions(+), 12 deletions(-)

M guix/scripts/offload.scm
M guix/scripts/offload.scm => guix/scripts/offload.scm +17 -12
@@ 551,18 551,23 @@ slot (which must later be released with 'release-build-slot'), or #f and #f."

(define (assert-node-has-guix node name)
  "Bail out if NODE lacks the (guix) module, or if its daemon is not running."
  (match (node-eval node
                    '(begin
                       (use-modules (guix))
                       (with-store store
                         (add-text-to-store store "test"
                                            "Hello, build machine!"))))
    ((? string? str)
     (info (G_ "Guix is usable on '~a' (test returned ~s)~%")
           name str))
    (x
     (leave (G_ "failed to use Guix module on '~a' (test returned ~s)~%")
            name x))))
  (catch 'node-repl-error
    (lambda ()
      (match (node-eval node
                        '(begin
                           (use-modules (guix))
                           (with-store store
                             (add-text-to-store store "test"
                                                "Hello, build machine!"))))
        ((? string? str)
         (info (G_ "Guix is usable on '~a' (test returned ~s)~%")
               name str))
        (x
         (leave (G_ "failed to use Guix module on '~a' (test returned ~s)~%")
                name x))))
    (lambda (key . args)
      (leave (G_ "remove evaluation on '~a' failed:~{ ~s~}~%")
             args))))

(define %random-state
  (delay