From 74ed34b4a34704e451a7c889058653185ccd9527 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Fri, 24 Apr 2015 14:10:13 +0900 Subject: [PATCH] Adding a system? variant of system which returns #t iff the command completes successfully. Also allowing a list as the first argument to both. --- lib/chibi/process.scm | 9 +++++++-- lib/chibi/process.sld | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/chibi/process.scm b/lib/chibi/process.scm index 0d4c0d4f..cdb14af7 100644 --- a/lib/chibi/process.scm +++ b/lib/chibi/process.scm @@ -68,11 +68,16 @@ (let ((pid (fork))) (cond ((zero? pid) - (execute cmd (cons cmd args)) - (execute-returned cmd)) + (let ((cmd ((if (pair? cmd) append cons) cmd args))) + (execute (car cmd) cmd) + (execute-returned cmd))) (else (waitpid pid 0))))) +(define (system? cmd . args) + (let ((res (apply system cmd args))) + (and (pair? res) (zero? (cadr res))))) + (define (call-with-process-io command proc) (define (set-non-blocking! fd) (cond-expand diff --git a/lib/chibi/process.sld b/lib/chibi/process.sld index 84b58cb4..40d9849d 100644 --- a/lib/chibi/process.sld +++ b/lib/chibi/process.sld @@ -1,6 +1,6 @@ (define-library (chibi process) - (export exit sleep alarm %fork fork kill execute waitpid system + (export exit sleep alarm %fork fork kill execute waitpid system system? process-command-line process-running? set-signal-action! make-signal-set signal-set? signal-set-contains?