From 002622b65b60286209d2c959d590a392afa782b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 9 Mar 2014 23:09:18 +0100 Subject: [PATCH] guix build: Add '--timeout' to the common build options. * guix/scripts/build.scm (show-build-options-help): Document '--timeout'. (set-build-options-from-command-line): Pass #:timeout to 'set-build-options'. (%standard-build-options): Add '--timeout'. * doc/guix.texi (Invoking guix build): Document it. --- doc/guix.texi | 7 +++++++ guix/scripts/build.scm | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index ddca6e5a1a..150747f445 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1903,6 +1903,13 @@ instead of offloading builds to remote machines. When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure. +@item --timeout=@var{seconds} +Likewise, when the build or substitution process lasts for more than +@var{seconds}, terminate it and report a build failure. + +By default there is no timeout. This behavior can be restored with +@code{--timeout=0}. + @item --verbosity=@var{level} Use the given verbosity level. @var{level} must be an integer between 0 and 5; higher means more verbose output. Setting a level of 4 or more diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 14b8f2d6bd..618015e9ba 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -126,6 +126,8 @@ options handled by 'set-build-options-from-command-line', and listed in (display (_ " --max-silent-time=SECONDS mark the build as failed after SECONDS of silence")) + (display (_ " + --timeout=SECONDS mark the build as failed after SECONDS of activity")) (display (_ " --verbosity=LEVEL use the given verbosity LEVEL")) (display (_ " @@ -142,6 +144,7 @@ options handled by 'set-build-options-from-command-line', and listed in #:use-substitutes? (assoc-ref opts 'substitutes?) #:use-build-hook? (assoc-ref opts 'build-hook?) #:max-silent-time (assoc-ref opts 'max-silent-time) + #:timeout (assoc-ref opts 'timeout) #:verbosity (assoc-ref opts 'verbosity))) (define %standard-build-options @@ -175,6 +178,11 @@ options handled by 'set-build-options-from-command-line', and listed in (alist-cons 'max-silent-time (string->number* arg) result) rest))) + (option '("timeout") #t #f + (lambda (opt name arg result . rest) + (apply values + (alist-cons 'timeout (string->number* arg) result) + rest))) (option '("verbosity") #t #f (lambda (opt name arg result . rest) (let ((level (string->number arg)))