* guix/lint.scm (check-name): New procedure.
(%local-checkers): Add it.
---
 guix/lint.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/guix/lint.scm b/guix/lint.scm
index 311bc94cc3..5144fa139d 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Danny Milosavljevic <danny...@scratchpost.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goe...@crazy-compilers.com>
 ;;; Copyright © 2017 Alex Kost <alez...@gmail.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <m...@tobias.gr>
+;;; Copyright © 2017, 2021 Tobias Geerinckx-Rice <m...@tobias.gr>
 ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2018, 2019 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2020 Chris Marusich <cmmarus...@gmail.com>
@@ -170,6 +170,16 @@
   (requires-store? lint-checker-requires-store?
                    (default #f)))
 
+(define (check-name package)
+  "Check whether PACKAGE's name matches our guidelines."
+  ;; Currently checks only whether the name is too short.
+  (if (<= (string-length (package-name package)) 1)
+      (list
+       (make-warning package
+                     (G_ "name should be longer than a single character")
+                     #:field 'name))
+      '()))
+
 (define (properly-starts-sentence? s)
   (string-match "^[(\"'`[:upper:][:digit:]]" s))
 
@@ -1445,6 +1455,10 @@ them for PACKAGE."
 
 (define %local-checkers
   (list
+   (lint-checker
+     (name        'name)
+     (description "Validate package names")
+     (check       check-name))
    (lint-checker
      (name        'description)
      (description "Validate package descriptions")
-- 
2.30.1




Reply via email to