Megatest

Diff
Login

Differences From Artifact [678870658d]:

To Artifact [a67e367861]:


13
14
15
16
17
18
19
20

21
22

23
24
25
26
27



28

29
30
31
32
33
34
35
13
14
15
16
17
18
19

20
21

22
23
24
25
26
27
28
29
30

31
32
33
34
35
36
37
38







-
+

-
+





+
+
+
-
+







;; Process convience utils
;;======================================================================

(define (cmd-run-proc-each-line cmd proc . params)
  (handle-exceptions
   exn
   (begin
     (print "ERROR:  Failed to run command: " cmd (string-intersperse params " "))
     (print "ERROR:  Failed to run command: " cmd " " (string-intersperse params " "))
     #f)
   (let* ((fh (process cmd params)))
   (let-values (((fh fho pid) (process cmd params)))
     (let loop ((curr (read-line fh))
		(result  '()))
       (if (not (eof-object? curr))
	   (loop (read-line fh)
		 (append result (list (proc curr))))
	   (begin
	     (close-input-port fh)
	     (close-output-port fho)
	   result)))))
	     result))))))

(define (cmd-run-proc-each-line-alt cmd proc)
  (let* ((fh (open-input-pipe cmd))
         (res (port-proc->list fh proc))
         (status (close-input-pipe fh)))
    (if (eq? status 0) res #f)))