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
This commit is contained in:
		
							parent
							
								
									0f46d4f147
								
							
						
					
					
						commit
						ad5584bf25
					
				
					 1 changed files with 8 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
                                ;; #<eof> can't be read, so convert to the
 | 
			
		||||
                                ;; empty string
 | 
			
		||||
                                ""
 | 
			
		||||
                                content))))
 | 
			
		||||
                   ((> i 0)
 | 
			
		||||
                    (sleep 1)
 | 
			
		||||
                    (loop (- i 1)))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue