guix lint: Make sure synopses are not too long.

* guix/scripts/lint.scm (check-synopsis-length): New procedure.
* tests/lint.scm ("synopsis: too long"): New test.
This commit is contained in:
Cyril Roelandt 2014-09-27 21:39:19 +02:00
parent 90d104ba82
commit 5622953de1
2 changed files with 17 additions and 1 deletions

View File

@ -140,11 +140,18 @@ Run a set of checkers on the specified package; if none is specified, run the ch
"no article allowed at the beginning of the synopsis" "no article allowed at the beginning of the synopsis"
'synopsis))) 'synopsis)))
(define (check-synopsis-length synopsis)
(if (>= (string-length synopsis) 80)
(emit-warning package
"synopsis should be less than 80 characters long"
'synopsis)))
(let ((synopsis (package-synopsis package))) (let ((synopsis (package-synopsis package)))
(if (string? synopsis) (if (string? synopsis)
(begin (begin
(check-final-period synopsis) (check-final-period synopsis)
(check-start-article synopsis))))) (check-start-article synopsis)
(check-synopsis-length synopsis)))))
(define (check-patches package) (define (check-patches package)
;; Emit a warning if the patches requires by PACKAGE are badly named. ;; Emit a warning if the patches requires by PACKAGE are badly named.

View File

@ -79,6 +79,15 @@
(check-synopsis-style pkg)))) (check-synopsis-style pkg))))
"no article allowed at the beginning of the synopsis"))) "no article allowed at the beginning of the synopsis")))
(test-assert "synopsis: too long"
(->bool
(string-contains (call-with-warnings
(lambda ()
(let ((pkg (dummy-package "x"
(synopsis (make-string 80 #\x)))))
(check-synopsis-style pkg))))
"synopsis should be less than 80 characters long")))
(test-assert "inputs: pkg-config is probably a native input" (test-assert "inputs: pkg-config is probably a native input"
(->bool (->bool
(string-contains (string-contains