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:
		
							parent
							
								
									9491227dcb
								
							
						
					
					
						commit
						3f65c190d2
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		| 
						 | 
					@ -84,6 +84,7 @@
 | 
				
			||||||
            fold-port-matches
 | 
					            fold-port-matches
 | 
				
			||||||
            remove-store-references
 | 
					            remove-store-references
 | 
				
			||||||
            wrap-program
 | 
					            wrap-program
 | 
				
			||||||
 | 
					            invoke
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            locale-category->string))
 | 
					            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))
 | 
					    ((_ phases (add-after old-phase-name new-phase-name new-phase))
 | 
				
			||||||
     (alist-cons-after old-phase-name new-phase-name new-phase phases))))
 | 
					     (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).
 | 
					;;; Text substitution (aka. sed).
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue