From 847391fe6229bc9b989939470b4a84bd82c75088 Mon Sep 17 00:00:00 2001 From: nebuli Date: Fri, 5 Dec 2014 01:28:12 +0100 Subject: guix: scripts: Parse $GUIX_BUILD_OPTIONS separately. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Appending to "raw" args broke optional parameters in 'guix package -I' and 'guix package -A', and possibly other places. Therefore, switch to parsing each set of options on its own and append resulting alists together afterwards. * guix/scripts/archive.scm (parse-options-from): Rename from (parse-options) and add explicit argument. New form of (parse-options) using its old algorithm via -from function. * guix/scripts/build.scm: Ditto. * guix/scripts/environment.scm: Ditto. * guix/scripts/package.scm: Ditto. * guix/scripts/system.scm: Ditto. * tests/guix-package.sh: Add test. * doc/guix.texi (Invoking guix build): Make it clear that the options are parsed independently. Co-authored-by: Ludovic Courtès --- guix/scripts/archive.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'guix/scripts/archive.scm') diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 29a3ad15a7..781ffc5f58 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -293,8 +293,12 @@ the input port." (define (guix-archive . args) (define (parse-options) ;; Return the alist of option values. - (args-fold* (append args (environment-build-options)) - %options + (append (parse-options-from args) + (parse-options-from (environment-build-options)))) + + (define (parse-options-from args) + ;; Actual parsing takes place here. + (args-fold* args %options (lambda (opt name arg result) (leave (_ "~A: unrecognized option~%") name)) (lambda (arg result) -- cgit v1.2.3