~ruther/guix-local

17854ef91dd6b8e8956ef38bd7a7db59fb43f114 — Ludovic Courtès 11 years ago 72b030c
lint: Improve check for synopses starting with package name.

* guix/scripts/lint.scm (package-name-regexp): New procedure.
  (check-synopsis-style)[check-start-with-package-name]: Use it instead
  of 'string-prefix-ci?'.
* tests/lint.scm ("synopsis: start with package name prefix"): New test.
2 files changed, 15 insertions(+), 1 deletions(-)

M guix/scripts/lint.scm
M tests/lint.scm
M guix/scripts/lint.scm => guix/scripts/lint.scm +7 -1
@@ 131,6 131,12 @@ by two spaces; possible infraction~p at ~{~a~^, ~}"
                      "pkg-config should probably be a native input"
                      'inputs))))))

(define (package-name-regexp package)
  "Return a regexp that matches PACKAGE's name as a word at the beginning of a
line."
  (make-regexp (string-append "^" (regexp-quote (package-name package))
                              "\\>")
               regexp/icase))

(define (check-synopsis-style package)
  ;; Emit a warning if stylistic issues are found in the synopsis of PACKAGE.


@@ 168,7 174,7 @@ by two spaces; possible infraction~p at ~{~a~^, ~}"
                    'synopsis)))

  (define (check-start-with-package-name synopsis)
    (when (string-prefix-ci? (package-name package) synopsis)
    (when (regexp-exec (package-name-regexp package) synopsis)
      (emit-warning package
                    "synopsis should not start with the package name"
                    'synopsis)))

M tests/lint.scm => tests/lint.scm +8 -0
@@ 194,6 194,14 @@
                          (check-synopsis-style pkg))))
                    "synopsis should not start with the package name")))

(test-assert "synopsis: start with package name prefix"
  (string-null?
   (call-with-warnings
    (lambda ()
      (let ((pkg (dummy-package "arb"
                   (synopsis "Arbitrary precision"))))
        (check-synopsis-style pkg))))))

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