utils: Add helper for invoking programs.

* guix/build/utils.scm (invoke): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Danny Milosavljevic 2017-06-01 19:04:10 +02:00
parent 9491227dcb
commit 3f65c190d2
No known key found for this signature in database
GPG Key ID: E71A35542C30BAA5

View File

@ -84,6 +84,7 @@
fold-port-matches
remove-store-references
wrap-program
invoke
locale-category->string))
@ -579,6 +580,15 @@ Where every <*-phase-name> is an expression evaluating to a symbol, and
((_ phases (add-after old-phase-name new-phase-name new-phase))
(alist-cons-after old-phase-name new-phase-name new-phase phases))))
(define (invoke program . args)
"Invoke PROGRAM with the given ARGS. Raise an error if the exit
code is non-zero; otherwise return #t."
(let ((status (apply system* program args)))
(unless (zero? status)
(error (format #f "program ~s exited with non-zero code" program)
status))
#t))
;;;
;;; Text substitution (aka. sed).