Megatest

Diff
Login

Differences From Artifact [d31db054ad]:

To Artifact [678870658d]:


10
11
12
13
14
15
16





17
18
19
20
21
22
23
24
25
26
27
28
29
30
;;======================================================================

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

(define (cmd-run-proc-each-line cmd proc . params)





  (let* ((fh (process cmd params)))
    (let loop ((curr (read-line fh))
               (result  '()))
      (if (not (eof-object? curr))
          (loop (read-line fh)
                (append result (list (proc curr))))
          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)))








>
>
>
>
>
|
|
|
|
|
|
|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
;;======================================================================

;;======================================================================
;; 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 " "))
     #f)
   (let* ((fh (process cmd params)))
     (let loop ((curr (read-line fh))
		(result  '()))
       (if (not (eof-object? curr))
	   (loop (read-line fh)
		 (append result (list (proc curr))))
	   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)))