summary refs log tree commit diff
diff options
context:
space:
mode:
authorCyril Roelandt <tipecaml@gmail.com>2014-09-27 21:39:19 +0200
committerCyril Roelandt <tipecaml@gmail.com>2014-10-08 03:08:19 +0200
commit5622953de1125497b2e20cf25a1f9686c8bcfd77 (patch)
treec46f3ae58eafe2960a760a645b020ee00baf3960
parent90d104ba82dca16203448da57523d2a7b36be040 (diff)
downloadguix-5622953de1125497b2e20cf25a1f9686c8bcfd77.tar.gz
guix lint: Make sure synopses are not too long.
* guix/scripts/lint.scm (check-synopsis-length): New procedure.
* tests/lint.scm ("synopsis: too long"): New test.
-rw-r--r--guix/scripts/lint.scm9
-rw-r--r--tests/lint.scm9
2 files changed, 17 insertions, 1 deletions
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index b61373760c..e8d3707080 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -140,11 +140,18 @@ Run a set of checkers on the specified package; if none is specified, run the ch
                      "no article allowed at the beginning of the synopsis"
                      'synopsis)))
 
+  (define (check-synopsis-length synopsis)
+   (if (>= (string-length synopsis) 80)
+       (emit-warning package
+                     "synopsis should be less than 80 characters long"
+                     'synopsis)))
+
  (let ((synopsis (package-synopsis package)))
    (if (string? synopsis)
        (begin
         (check-final-period synopsis)
-        (check-start-article synopsis)))))
+        (check-start-article synopsis)
+        (check-synopsis-length synopsis)))))
 
 (define (check-patches package)
   ;; Emit a warning if the patches requires by PACKAGE are badly named.
diff --git a/tests/lint.scm b/tests/lint.scm
index 56558c904f..e0829089b4 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -79,6 +79,15 @@
                         (check-synopsis-style pkg))))
                     "no article allowed at the beginning of the synopsis")))
 
+(test-assert "synopsis: too long"
+  (->bool
+   (string-contains (call-with-warnings
+                      (lambda ()
+                        (let ((pkg (dummy-package "x"
+                                     (synopsis (make-string 80 #\x)))))
+                          (check-synopsis-style pkg))))
+                    "synopsis should be less than 80 characters long")))
+
 (test-assert "inputs: pkg-config is probably a native input"
   (->bool
    (string-contains