Use a PkgbuildRule instead of a PkgInfoRule

---
 Namcap/rules/pkginfo.py | 11 ++++++++++-
 namcap-tags             |  1 +
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/Namcap/rules/pkginfo.py b/Namcap/rules/pkginfo.py
index 216e417..5a42810 100644
--- a/Namcap/rules/pkginfo.py
+++ b/Namcap/rules/pkginfo.py
@@ -20,7 +20,8 @@
 "These rules checks basic sanity of package metadata"
 
 import re
-from Namcap.ruleclass import PkgInfoRule
+import os
+from Namcap.ruleclass import PkgInfoRule,PkgbuildRule
 
 class CapsPkgnameRule(PkgInfoRule):
        name = "capsnamespkg"
@@ -43,4 +44,12 @@ class LicenseRule(PkgInfoRule):
                if "license" not in pkginfo or len(pkginfo["license"]) == 0:
                        self.errors.append(("missing-license", ()))
 
+class NonUniqueSourcesRule(PkgbuildRule):
+       name = "non-unique-source"
+       description = "Verifies the downloaded sources have a unique filename"
+       def analyze(self, pkginfo, tar):
+               for source_file in pkginfo["source"]:
+                       if '::' not in source_file and 
re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', os.path.basename(source_file)):
+                               self.warnings.append(("non-unique-source-name 
%s", os.path.basename(source_file)))
+
 # vim: set ts=4 sw=4 noet:
diff --git a/namcap-tags b/namcap-tags
index 2133c45..5c236db 100644
--- a/namcap-tags
+++ b/namcap-tags
@@ -61,6 +61,7 @@ missing-makedeps %s :: Split PKGBUILD needs additional 
makedepends %s to work pr
 no-elffiles-not-any-package :: No ELF files and not an "any" package
 non-fhs-info-page %s :: Non-FHS info page (%s) found. Use /usr/share/info 
instead
 non-fhs-man-page %s :: Non-FHS man page (%s) found. Use /usr/share/man instead
+non-unique-source-name %s :: Non-unique source name (%s). Use a unique 
filename.
 not-a-common-license %s :: %s is not a common license (it's not in 
/usr/share/licenses/common/)
 not-enough-checksums %s %i needed :: Not enough %s: %i needed
 package-name-in-uppercase :: No upper case letters in package names
-- 
2.19.1

Reply via email to