lint: Add 'check-texinfo-markup' checker.
* guix/script/lint.scm (check-description-style): Check for invalid Texinfo markup. * tests/lint.scm: Test it.
This commit is contained in:
parent
83d95c7b36
commit
3500e659f1
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -141,6 +142,13 @@ monad."
|
||||||
(_ "description should not be empty")
|
(_ "description should not be empty")
|
||||||
'description)))
|
'description)))
|
||||||
|
|
||||||
|
(define (check-texinfo-markup package)
|
||||||
|
"Check that PACKAGE description can be parsed as a Texinfo fragment."
|
||||||
|
(catch 'parser-error
|
||||||
|
(lambda () (package-description-string package))
|
||||||
|
(lambda (keys . args)
|
||||||
|
(emit-warning package (_ "Texinfo markup in description is invalid")))))
|
||||||
|
|
||||||
(define (check-proper-start description)
|
(define (check-proper-start description)
|
||||||
(unless (or (properly-starts-sentence? description)
|
(unless (or (properly-starts-sentence? description)
|
||||||
(string-prefix-ci? (package-name package) description))
|
(string-prefix-ci? (package-name package) description))
|
||||||
|
@ -170,6 +178,7 @@ by two spaces; possible infraction~p at ~{~a~^, ~}")
|
||||||
(let ((description (package-description package)))
|
(let ((description (package-description package)))
|
||||||
(when (string? description)
|
(when (string? description)
|
||||||
(check-not-empty description)
|
(check-not-empty description)
|
||||||
|
(check-texinfo-markup package)
|
||||||
(check-proper-start description)
|
(check-proper-start description)
|
||||||
(check-end-of-sentence-space description))))
|
(check-end-of-sentence-space description))))
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2012, 2013 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2012, 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -142,6 +143,13 @@ requests."
|
||||||
(check-description-style pkg)))
|
(check-description-style pkg)))
|
||||||
"description should not be empty")))
|
"description should not be empty")))
|
||||||
|
|
||||||
|
(test-assert "description: valid Texinfo markup"
|
||||||
|
(->bool
|
||||||
|
(string-contains
|
||||||
|
(with-warnings
|
||||||
|
(check-description-style (dummy-package "x" (description "f{oo}b@r"))))
|
||||||
|
"Texinfo markup in description is invalid")))
|
||||||
|
|
||||||
(test-assert "description: does not start with an upper-case letter"
|
(test-assert "description: does not start with an upper-case letter"
|
||||||
(->bool
|
(->bool
|
||||||
(string-contains (with-warnings
|
(string-contains (with-warnings
|
||||||
|
|
Loading…
Reference in New Issue