mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
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.
This commit is contained in:
parent
30347040de
commit
8fbf530260
2 changed files with 13 additions and 11 deletions
|
@ -482,7 +482,7 @@ (define %options
|
|||
;; * --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 @@ (define %options
|
|||
%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 @@ (define (guix-lint . args)
|
|||
(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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue