From ad5584bf25feb0b3f2e4bb328cedccbb71f42724 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 16 Sep 2022 09:20:25 +0200 Subject: marionette: Avoid read error when wait-for-file file is empty. Since # can't be read. * gnu/build/marionette.scm (wait-for-file): Return "" if file is empty. Partially-Fixes: https://issues.guix.gnu.org/57827 --- gnu/build/marionette.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index fd59a4c72f..5ebf783892 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -198,7 +198,14 @@ FILE has not shown up after TIMEOUT seconds, raise an error." (match (marionette-eval `(let loop ((i ,timeout)) (cond ((file-exists? ,file) - (cons 'success (call-with-input-file ,file ,read))) + (cons 'success + (let ((content + (call-with-input-file ,file ,read))) + (if (eof-object? content) + ;; # can't be read, so convert to the + ;; empty string + "" + content)))) ((> i 0) (sleep 1) (loop (- i 1))) -- cgit 1.4.1