Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -181,9 +181,14 @@ (launch-results (apply cmd-run-proc-each-line (car fullcmd) print (cdr fullcmd)))) ;; launcher fullcmd)));; (apply cmd-run-proc-each-line launcher print fullcmd))) ;; (cmd-run->list fullcmd)) (debug:print 2 "Launching completed, updating db") + (debug:print 4 "Launch results: " launch-results) + (if (not launch-results) + (begin + (print "ERROR: Failed to run " fullcmd ", exiting now") + (exit 1))) (alist->env-vars miscprevvals) (alist->env-vars testprevvals) (alist->env-vars commonprevvals)))) Index: process.scm ================================================================== --- process.scm +++ process.scm @@ -12,17 +12,22 @@ ;;====================================================================== ;; 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)))) + (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)))