diff options
| author | Christopher Baines <mail@cbaines.net> | 2022-09-16 09:20:25 +0200 |
|---|---|---|
| committer | Christopher Baines <mail@cbaines.net> | 2022-09-16 11:59:42 +0200 |
| commit | ad5584bf25feb0b3f2e4bb328cedccbb71f42724 (patch) | |
| tree | d4d1042200110a449b2155d41f3148841769799d /gnu/build | |
| parent | 0f46d4f1477b0446abd089f842ac7409963cc4f1 (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.scm | 9 |
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))) |
