GNU bug report logs -
#27180
[PATCH core-updates] utils: Add helper method to invoke programs.
Previous Next
Full log
Message #8 received at 27180 <at> debbugs.gnu.org (full text, mbox):
Danny Milosavljevic <dannym <at> scratchpost.org> skribis:
> * guix/build/utils.scm (invoke): New variable.
> ---
> guix/build/utils.scm | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/guix/build/utils.scm b/guix/build/utils.scm
> index 6d3c29d00..b2307d9d6 100644
> --- a/guix/build/utils.scm
> +++ b/guix/build/utils.scm
> @@ -84,6 +84,7 @@
> fold-port-matches
> remove-store-references
> wrap-program
> + invoke
>
> locale-category->string))
>
> @@ -1058,6 +1059,13 @@ with definitions for VARS."
> (chmod prog-tmp #o755)
> (rename-file prog-tmp prog))))
>
> +(define invoke
> + "Invokes the program (array-ref ARGS 0) and gives it ARGS.
> + If the exit code is non-zero, raises an error."
> + (lambda args
> + (if (not (zero? (system* args)))
> + (error (format #f "Failed to invoke ~a" args)))))
Good idea. I would suggest writing it this way though:
(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))
If that’s fine with you, please push to ‘core-updates’. (Just in time!)
Thanks,
Ludo’.
This bug report was last modified 8 years and 70 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.