Welcome to the CHICKEN Scheme pasting service
example of running git from chicken added by DerGuteMoritz on Wed Jul 11 01:49:49 2012
(define (run-git repo command args proc)
(receive (in out pid err)
(process* "git" (cons* "--git-dir" repo command args))
(begin0
(proc in)
(receive (_ ok? status/signal) (process-wait pid)
(unless ok?
(error 'run-git
(sprintf "git ~A on ~A terminated abnormally with signal ~A"
command
repo
status/signal)))
(unless (zero? status/signal)
(error 'run-git
(sprintf "git ~A on ~A failed with exit status ~A:~%~A"
command
repo
status/signal
(read-all err)))))
(close-input-port err)
(close-input-port in)
(close-output-port out))))