* guix/scripts/lint.scm (check-inputs-should-be-sorted): Add it. (lint-checker): Add it. --- guix/scripts/lint.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index d64a066..d3a82c9 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -220,6 +220,21 @@ by two spaces; possible infraction~p at ~{~a~^, ~}") (when (string-suffix? ":bin" package-name) (warn package-name))) labels))))))) +(define (check-inputs-should-be-sorted package) + ;; Emit a warning if inputs, native-inputs or propagated-inputs are not sorted. + (define (check-inputs accessor string symbol) + (let ((inputs (accessor package))) + (match inputs + (((labels packages . _) ...) + (let ((package-names (map package-name (filter package? packages)))) #t + (unless (sorted? package-names string<?) + (emit-warning package + (format (_ "has unordered ~s") string) symbol))))))) + + (check-inputs package-inputs "inputs" 'inputs) + (check-inputs package-native-inputs "native-inputs" 'native-inputs) + (check-inputs package-propagated-inputs "propagated-inputs" 'propagated-inputs)) + (define (package-name-regexp package) "Return a regexp that matches PACKAGE's name as a word at the beginning of a line." @@ -788,6 +803,10 @@ them for PACKAGE." (description "Identify inputs that should be native inputs") (check check-inputs-should-be-native)) (lint-checker + (name 'inputs-should-be-sorted) + (description "Identify packages with unsorted inputs") + (check check-inputs-should-be-sorted)) + (lint-checker (name 'patch-file-names) (description "Validate file names and availability of patches") (check check-patch-file-names)) -- 2.9.0