summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-01-28 14:00:58 +0100
committerLudovic Courtès <ludo@gnu.org>2015-01-28 14:00:58 +0100
commit8fbf530260ec4b269e224de272727a3b4987296b (patch)
treea27cb17808e24974b5423bf0402bf01d22bbe286
parent30347040de9b1ffe9c8c9c26ebf0ed4254fb6fd6 (diff)
downloadguix-8fbf530260ec4b269e224de272727a3b4987296b.tar.gz
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.
-rw-r--r--guix/scripts/lint.scm21
-rw-r--r--tests/guix-lint.sh3
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