From 8fbf530260ec4b269e224de272727a3b4987296b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Jan 2015 14:00:58 +0100 Subject: lint: Fix argument parsing when several packages are specified. * guix/scripts/lint.scm (%options) <--checkers>: Remove 'arg-handler' parameter, and return a single value. (guix-lint)[parse-options]: Remove 'arg-handler' parameter from handlers. Remove second seed to 'args-fold*'. * tests/guix-lint.sh: Add test. --- guix/scripts/lint.scm | 21 ++++++++++----------- tests/guix-lint.sh | 3 +++ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 229b73702e..9d5c689618 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -482,7 +482,7 @@ Run a set of checkers on the specified package; if none is specified, run the ch ;; * --certainty=[low,medium,high]: only run checkers that have at least this ;; 'certainty'. (list (option '(#\c "checkers") #t #f - (lambda (opt name arg result arg-handler) + (lambda (opt name arg result) (let ((names (map string->symbol (string-split arg #\,)))) (for-each (lambda (c) (unless (memq c @@ -490,13 +490,12 @@ Run a set of checkers on the specified package; if none is specified, run the ch %checkers)) (leave (_ "~a: invalid checker~%") c))) names) - (values (alist-cons 'checkers - (filter (lambda (checker) - (member (lint-checker-name checker) - names)) - %checkers) - result) - #f)))) + (alist-cons 'checkers + (filter (lambda (checker) + (member (lint-checker-name checker) + names)) + %checkers) + result)))) (option '(#\h "help") #f #f (lambda args (show-help) @@ -517,11 +516,11 @@ Run a set of checkers on the specified package; if none is specified, run the ch (define (parse-options) ;; Return the alist of option values. (args-fold* args %options - (lambda (opt name arg result arg-handler) + (lambda (opt name arg result) (leave (_ "~A: unrecognized option~%") name)) - (lambda (arg result arg-handler) + (lambda (arg result) (alist-cons 'argument arg result)) - %default-options #f)) + %default-options)) (let* ((opts (parse-options)) (args (filter-map (match-lambda diff --git a/tests/guix-lint.sh b/tests/guix-lint.sh index b48cd4e120..5015b5cfb5 100644 --- a/tests/guix-lint.sh +++ b/tests/guix-lint.sh @@ -73,3 +73,6 @@ then false; else true; fi if guix lint -c synopsis,invalid-checker dummy 2>&1 | \ grep -q 'invalid-checker: invalid checker' then true; else false; fi + +# Make sure specifying multiple packages works. +guix lint -c inputs-should-be-native dummy dummy-42 dummy -- cgit v1.2.3