summaryrefslogtreecommitdiff
path: root/gnu/build
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-09-16 09:20:25 +0200
committerChristopher Baines <mail@cbaines.net>2022-09-16 11:59:42 +0200
commitad5584bf25feb0b3f2e4bb328cedccbb71f42724 (patch)
treed4d1042200110a449b2155d41f3148841769799d /gnu/build
parent0f46d4f1477b0446abd089f842ac7409963cc4f1 (diff)
marionette: Avoid read error when wait-for-file file is empty.
Since #<eof> can't be read. * gnu/build/marionette.scm (wait-for-file): Return "" if file is empty. Partially-Fixes: https://issues.guix.gnu.org/57827
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/marionette.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index fd59a4c72fc..5ebf783892e 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."
198 (match (marionette-eval 198 (match (marionette-eval
199 `(let loop ((i ,timeout)) 199 `(let loop ((i ,timeout))
200 (cond ((file-exists? ,file) 200 (cond ((file-exists? ,file)
201 (cons 'success (call-with-input-file ,file ,read))) 201 (cons 'success
202 (let ((content
203 (call-with-input-file ,file ,read)))
204 (if (eof-object? content)
205 ;; #<eof> can't be read, so convert to the
206 ;; empty string
207 ""
208 content))))
202 ((> i 0) 209 ((> i 0)
203 (sleep 1) 210 (sleep 1)
204 (loop (- i 1))) 211 (loop (- i 1)))