[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/05: lint: Add 'license' checker.
From: |
Ludovic Courtès |
Subject: |
02/05: lint: Add 'license' checker. |
Date: |
Sun, 06 Sep 2015 10:36:59 +0000 |
civodul pushed a commit to branch master
in repository guix.
commit 52b9efe337d00f2ce65c4d4ca74ccc3679e6aad8
Author: Ludovic Courtès <address@hidden>
Date: Sun Sep 6 10:54:51 2015 +0200
lint: Add 'license' checker.
* guix/scripts/lint.scm (check-license): New procedure.
(%checkers): Add 'license' checker.
* tests/lint.scm ("license: invalid license"): New test.
---
guix/scripts/lint.scm | 19 +++++++++++++++++++
tests/lint.scm | 6 ++++++
2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 41249b2..2a618c9 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -24,6 +24,7 @@
#:use-module (guix download)
#:use-module (guix ftp-client)
#:use-module (guix packages)
+ #:use-module (guix licenses)
#:use-module (guix records)
#:use-module (guix ui)
#:use-module (guix utils)
@@ -56,6 +57,7 @@
check-derivation
check-home-page
check-source
+ check-license
check-formatting
%checkers
@@ -518,6 +520,16 @@ descriptions maintained upstream."
(format #f (_ "failed to create derivation: ~s~%")
args)))))
+(define (check-license package)
+ "Warn about type errors of the 'license' field of PACKAGE."
+ (match (package-license package)
+ ((or (? license?)
+ ((? license?) ...))
+ #t)
+ (x
+ (emit-warning package (_ "invalid license field")
+ 'license))))
+
;;;
;;; Source code formatting.
@@ -620,6 +632,13 @@ them for PACKAGE."
(description "Validate home-page URLs")
(check check-home-page))
(lint-checker
+ (name 'license)
+ ;; TRANSLATORS: <license> is the name of a data type and must not be
+ ;; translated.
+ (description "Make sure the 'license' field is a <license> \
+or a list thereof")
+ (check check-license))
+ (lint-checker
(name 'source)
(description "Validate source URLs")
(check check-source))
diff --git a/tests/lint.scm b/tests/lint.scm
index 5d56420..ac47dbb 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -329,6 +329,12 @@ requests."
(check-derivation pkg)))
"failed to create derivation")))
+(test-assert "license: invalid license"
+ (string-contains
+ (with-warnings
+ (check-license (dummy-package "x" (license #f))))
+ "invalid license"))
+
(test-assert "home-page: wrong home-page"
(->bool
(string-contains