~ruther/guix-local

3c762a13bf0a8e15f2cf67d6a9eb27cf6d55267d — Cyril Roelandt 11 years ago a00ffda
guix lint: make sure synopses do not start with the package name.

* guix/scripts/lint.scm (check-start-with-package-name): New method.
* tests/lint.scm ("synopsis: start with package name"): New test.
2 files changed, 19 insertions(+), 0 deletions(-)

M guix/scripts/lint.scm
M tests/lint.scm
M guix/scripts/lint.scm => guix/scripts/lint.scm +9 -0
@@ 167,12 167,21 @@ Run a set of checkers on the specified package; if none is specified, run the ch
                   "synopsis should start with an upper-case letter"
                   'synopsis)))

  (define (check-start-with-package-name synopsis)
   (let ((idx (string-contains-ci synopsis (package-name package))))
     (when (and idx
                (= idx 0))
       (emit-warning package
                     "synopsis should not start with the package name")
                     'synopsis)))

 (let ((synopsis (package-synopsis package)))
   (if (string? synopsis)
       (begin
        (check-synopsis-start-upper-case synopsis)
        (check-final-period synopsis)
        (check-start-article synopsis)
        (check-start-with-package-name synopsis)
        (check-synopsis-length synopsis)))))

(define (check-patches package)

M tests/lint.scm => tests/lint.scm +10 -0
@@ 124,6 124,16 @@
                          (check-synopsis-style pkg))))
                    "synopsis should be less than 80 characters long")))

(test-assert "synopsis: start with package name"
  (->bool
   (string-contains (call-with-warnings
                      (lambda ()
                        (let ((pkg (dummy-package "x"
                                     (name "foo")
                                     (synopsis "foo, a nice package"))))
                          (check-synopsis-style pkg))))
                    "synopsis should not start with the package name")))

(test-assert "inputs: pkg-config is probably a native input"
  (->bool
   (string-contains