aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-01-19 21:57:40 +0100
committerLudovic Courtès <ludo@gnu.org>2016-01-19 21:59:58 +0100
commitf495301902a398f1d7ec4ceb7b9fc262240d8c8d (patch)
treeb00c988505945d6cbbb5658b6b790649e12c9015
parent0e510971c3f6e5203803f14c40b89fe37d3d3f53 (diff)
downloadguix-f495301902a398f1d7ec4ceb7b9fc262240d8c8d.tar
guix-f495301902a398f1d7ec4ceb7b9fc262240d8c8d.tar.gz
guix build: Add '--keep-going'.
* guix/scripts/build.scm (show-build-options-help) (%standard-build-options): Add --keep-going. * guix/scripts/build.scm (set-build-options-from-command-line): Honor it. * doc/guix.texi (Invoking guix build): Document it.
-rw-r--r--doc/guix.texi8
-rw-r--r--guix/scripts/build.scm10
2 files changed, 17 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 592ec3cb1d..a3d751a296 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3973,6 +3973,14 @@ Keep the build tree of failed builds. Thus, if a build fail, its build
tree is kept under @file{/tmp}, in a directory whose name is shown at
the end of the build log. This is useful when debugging build issues.
+@item --keep-going
+@itemx -k
+Keep going when some of the derivations fail to build; return only once
+all the builds have either completed or failed.
+
+The default behavior is to stop as soon as one of the specified
+derivations has failed.
+
@item --dry-run
@itemx -n
Do not build the derivations.
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 9193ad32b2..7ca2c6ebc8 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -153,6 +153,8 @@ options handled by 'set-build-options-from-command-line', and listed in
(display (_ "
-K, --keep-failed keep build tree of failed builds"))
(display (_ "
+ -k, --keep-going keep going when some of the derivations fail"))
+ (display (_ "
-n, --dry-run do not build the derivations"))
(display (_ "
--fallback fall back to building when the substituter fails"))
@@ -183,6 +185,7 @@ options handled by 'set-build-options-from-command-line', and listed in
;; TODO: Add more options.
(set-build-options store
#:keep-failed? (assoc-ref opts 'keep-failed?)
+ #:keep-going? (assoc-ref opts 'keep-going?)
#:rounds (assoc-ref opts 'rounds)
#:build-cores (or (assoc-ref opts 'cores) 0)
#:max-build-jobs (or (assoc-ref opts 'max-jobs) 1)
@@ -214,6 +217,11 @@ options handled by 'set-build-options-from-command-line', and listed in
(apply values
(alist-cons 'keep-failed? #t result)
rest)))
+ (option '(#\k "keep-going") #f #f
+ (lambda (opt name arg result . rest)
+ (apply values
+ (alist-cons 'keep-going? #t result)
+ rest)))
(option '("rounds") #t #f
(lambda (opt name arg result . rest)
(apply values