diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-02-26 00:00:04 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-02-26 00:04:36 +0100 |
commit | cf6ce3e6ef96abc36a40293b2d9f732d462d2a94 (patch) | |
tree | c49727c6364ecb723d2456239eaf3177270d1035 | |
parent | b3f213893b67620840597213b8f46af1ddfb4934 (diff) | |
download | guix-cf6ce3e6ef96abc36a40293b2d9f732d462d2a94.tar.gz guix-cf6ce3e6ef96abc36a40293b2d9f732d462d2a94.zip |
ui: Honor --no-* options passed via $GUIX_BUILD_OPTIONS.
Reported by Alex Kost <alezost@gmail.com>
at <http://lists.gnu.org/archive/html/guix-devel/2015-02/msg00702.html>.
* guix/ui.scm (parse-command-line)[parse-options-from]: Add 'seeds'
parameter.
Thread the result of the first 'parse-options-from' call to the
second.
-rw-r--r-- | guix/ui.scm | 10 | ||||
-rw-r--r-- | tests/ui.scm | 9 |
2 files changed, 16 insertions, 3 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index 09cb6f48ff..9558d38ca8 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -769,7 +769,7 @@ Command-line options take precedence those passed via 'GUIX_BUILD_OPTIONS'. ARGUMENT-HANDLER is called for non-option arguments, like the 'operand-proc' parameter of 'args-fold'." - (define (parse-options-from args) + (define (parse-options-from args seeds) ;; Actual parsing takes place here. (apply args-fold* args options (lambda (opt name arg . rest) @@ -777,8 +777,12 @@ parameter of 'args-fold'." argument-handler seeds)) - (append (parse-options-from args) - (parse-options-from (environment-build-options)))) + (call-with-values + (lambda () + (parse-options-from (environment-build-options) seeds)) + (lambda seeds + ;; ARGS take precedence over what the environment variable specifies. + (parse-options-from args seeds)))) (define (show-guix-usage) (format (current-error-port) diff --git a/tests/ui.scm b/tests/ui.scm index c71fc71cc1..1478fe213e 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -82,6 +82,15 @@ interface, and powerful string processing.") %standard-build-options (list '())))) +(test-equal "parse-command-line and --no options" + '((argument . "foo") + (substitutes? . #f)) ;takes precedence + + (with-environment-variable "GUIX_BUILD_OPTIONS" "--no-substitutes" + (parse-command-line '("foo") + %standard-build-options + (list '((substitutes? . #t)))))) + (test-assert "fill-paragraph" (every (lambda (column) (every (lambda (width) |