diff options
author | Eric Bavier <bavier@member.fsf.org> | 2014-10-22 13:48:55 -0500 |
---|---|---|
committer | Eric Bavier <bavier@member.fsf.org> | 2014-10-26 13:03:53 -0500 |
commit | 334c43e35462f20d75f25a05e5b66095839d81c0 (patch) | |
tree | 2fed9865cad54bf5228d209e1c5008dd5f4402a8 | |
parent | 574e847b8ea692aeea051d487cc95cec1257aba7 (diff) | |
download | guix-334c43e35462f20d75f25a05e5b66095839d81c0.tar.gz |
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.
-rw-r--r-- | guix/scripts/lint.scm | 14 | ||||
-rw-r--r-- | tests/lint.scm | 9 |
2 files changed, 23 insertions, 0 deletions
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 7b530fa5ac..5f1675f83f 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -82,6 +82,12 @@ (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 @@ by two spaces; possible infraction~p at ~{~a~^, ~}" (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 @@ by two spaces; possible infraction~p at ~{~a~^, ~}" (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 @@ by two spaces; possible infraction~p at ~{~a~^, ~}" (let ((synopsis (package-synopsis package))) (begin + (check-not-empty synopsis) (check-synopsis-start-upper-case synopsis) (check-final-period synopsis) (check-start-article synopsis) diff --git a/tests/lint.scm b/tests/lint.scm index b013231b29..b732a1826a 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -45,6 +45,15 @@ (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 |