summaryrefslogtreecommitdiff
path: root/guix/scripts/build.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-11-25 22:32:26 +0100
committerLudovic Courtès <ludo@gnu.org>2014-11-25 22:37:44 +0100
commitf6526eb330c6be9c20cf9486b59d7f9ea84ffda3 (patch)
tree3427d23e92b0cdb583b82b4f0fde26241b32e1d6 /guix/scripts/build.scm
parent1b366ee4f6dff35b3bef259f4a64832b580178c9 (diff)
guix build: Add '--max-jobs' option.
Suggested by Deck Pickard <deck.r.pickard@gmail.com>. * guix/scripts/build.scm (show-build-options-help): Document --max-jobs. (set-build-options-from-command-line): Pass #:max-build-jobs. (%standard-build-options): Add --max-jobs. * doc/guix.texi (Invoking guix-daemon): Document the meaning of '--max-jobs 0'. (Invoking guix build): Document --max-jobs, with a reference to "Invoking guix-daemon'.
Diffstat (limited to 'guix/scripts/build.scm')
-rw-r--r--guix/scripts/build.scm15
1 files changed, 13 insertions, 2 deletions
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 7b7f419f3a..b4aa33b3a0 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -119,7 +119,9 @@ options handled by 'set-build-options-from-command-line', and listed in
(display (_ "
--verbosity=LEVEL use the given verbosity LEVEL"))
(display (_ "
- -c, --cores=N allow the use of up to N CPU cores for the build")))
+ -c, --cores=N allow the use of up to N CPU cores for the build"))
+ (display (_ "
+ -M, --max-jobs=N allow at most N build jobs")))
(define (set-build-options-from-command-line store opts)
"Given OPTS, an alist as returned by 'args-fold' given
@@ -128,6 +130,7 @@ options handled by 'set-build-options-from-command-line', and listed in
(set-build-options store
#:keep-failed? (assoc-ref opts 'keep-failed?)
#:build-cores (or (assoc-ref opts 'cores) 0)
+ #:max-build-jobs (or (assoc-ref opts 'max-jobs) 1)
#:fallback? (assoc-ref opts 'fallback?)
#:use-substitutes? (assoc-ref opts 'substitutes?)
#:use-build-hook? (assoc-ref opts 'build-hook?)
@@ -192,7 +195,15 @@ options handled by 'set-build-options-from-command-line', and listed in
(let ((c (false-if-exception (string->number arg))))
(if c
(apply values (alist-cons 'cores c result) rest)
- (leave (_ "~a: not a number~%") arg)))))))
+ (leave (_ "not a number: '~a' option argument: ~a~%")
+ name arg)))))
+ (option '(#\M "max-jobs") #t #f
+ (lambda (opt name arg result . rest)
+ (let ((c (false-if-exception (string->number arg))))
+ (if c
+ (apply values (alist-cons 'max-jobs c result) rest)
+ (leave (_ "not a number: '~a' option argument: ~a~%")
+ name arg)))))))
;;;