mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
guix: lint: Check for empty synopses and descriptions.
* guix/scripts/lint.scm (check-description-style, check-synopsis-style): New emptiness checks. * tests/lint.scm: Test them.
This commit is contained in:
parent
574e847b8e
commit
334c43e354
2 changed files with 23 additions and 0 deletions
|
@ -82,6 +82,12 @@ (define (start-with-capital-letter? s)
|
|||
|
||||
(define (check-description-style package)
|
||||
;; Emit a warning if stylistic issues are found in the description of PACKAGE.
|
||||
(define (check-not-empty description)
|
||||
(when (string-null? description)
|
||||
(emit-warning package
|
||||
"description should not be empty"
|
||||
'description)))
|
||||
|
||||
(define (check-starts-with-upper-case description)
|
||||
(unless (start-with-capital-letter? description)
|
||||
(emit-warning package
|
||||
|
@ -110,6 +116,7 @@ (define (check-end-of-sentence-space description)
|
|||
(let ((description (package-description package)))
|
||||
(when (string? description)
|
||||
(begin
|
||||
(check-not-empty description)
|
||||
(check-starts-with-upper-case description)
|
||||
(check-end-of-sentence-space description)))))
|
||||
|
||||
|
@ -128,6 +135,12 @@ (define (check-inputs-should-be-native package)
|
|||
|
||||
(define (check-synopsis-style package)
|
||||
;; Emit a warning if stylistic issues are found in the synopsis of PACKAGE.
|
||||
(define (check-not-empty synopsis)
|
||||
(when (string-null? synopsis)
|
||||
(emit-warning package
|
||||
"synopsis should not be empty"
|
||||
'synopsis)))
|
||||
|
||||
(define (check-final-period synopsis)
|
||||
;; Synopsis should not end with a period, except for some special cases.
|
||||
(when (and (string-suffix? "." synopsis)
|
||||
|
@ -164,6 +177,7 @@ (define (check-start-with-package-name synopsis)
|
|||
|
||||
(let ((synopsis (package-synopsis package)))
|
||||
(begin
|
||||
(check-not-empty synopsis)
|
||||
(check-synopsis-start-upper-case synopsis)
|
||||
(check-final-period synopsis)
|
||||
(check-start-article synopsis)
|
||||
|
|
|
@ -45,6 +45,15 @@ (define (call-with-warnings thunk)
|
|||
(thunk))
|
||||
(get-output-string port)))
|
||||
|
||||
(test-assert "description: not empty"
|
||||
(->bool
|
||||
(string-contains (call-with-warnings
|
||||
(lambda ()
|
||||
(let ((pkg (dummy-package "x"
|
||||
(description ""))))
|
||||
(check-description-style pkg))))
|
||||
"description should not be empty")))
|
||||
|
||||
(test-assert "description: does not start with an upper-case letter"
|
||||
(->bool
|
||||
(string-contains (call-with-warnings
|
||||
|
|
Loading…
Reference in a new issue