commit:     07b87ced7b378bace32904c6322cc3d00d610a01
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Sun Jan  3 11:56:25 2016 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sat Jan 30 20:25:21 2016 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=07b87ced

repoman: Migrate more metadata checks to ebuild_metadata.py

 .../modules/scan/metadata/ebuild_metadata.py       | 32 ++++++++++++++++++++--
 pym/repoman/scanner.py                             | 17 ------------
 2 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/pym/repoman/modules/scan/metadata/ebuild_metadata.py 
b/pym/repoman/modules/scan/metadata/ebuild_metadata.py
index 2dc1db2..77c947e 100644
--- a/pym/repoman/modules/scan/metadata/ebuild_metadata.py
+++ b/pym/repoman/modules/scan/metadata/ebuild_metadata.py
@@ -5,6 +5,8 @@
 import re
 import sys
 
+from repoman.qa_data import missingvars
+
 if sys.hexversion >= 0x3000000:
        basestring = str
 
@@ -16,7 +18,7 @@ class EbuildMetadata(object):
        def __init__(self, **kwargs):
                self.qatracker = kwargs.get('qatracker')
 
-       def check(self, **kwargs):
+       def invalidchar(self, **kwargs):
                ebuild = kwargs.get('ebuild')
                for k, v in ebuild.metadata.items():
                        if not isinstance(v, basestring):
@@ -28,9 +30,35 @@ class EbuildMetadata(object):
                                        "%s: %s variable contains non-ASCII "
                                        "character at position %s" %
                                        (ebuild.relative_path, k, m.start() + 
1))
+               return {'continue': False}
+
+       def missing(self, **kwargs):
+               ebuild = kwargs.get('ebuild')
+               for pos, missing_var in enumerate(missingvars):
+                       if not ebuild.metadata.get(missing_var):
+                               if kwargs.get('catdir') == "virtual" and \
+                                       missing_var in ("HOMEPAGE", "LICENSE"):
+                                       continue
+                               if kwargs.get('live_ebuild') and missing_var == 
"KEYWORDS":
+                                       continue
+                               myqakey = missingvars[pos] + ".missing"
+                               self.qatracker.add_error(myqakey, '%s/%s.ebuild'
+                                       % (kwargs.get('xpkg'), 
kwargs.get('y_ebuild')))
+               return {'continue': False}
+
+       def old_virtual(self, **kwargs):
+               ebuild = kwargs.get('ebuild')
                if ebuild.metadata.get("PROVIDE"):
                        self.qatracker.add_error("virtual.oldstyle", 
ebuild.relative_path)
+               return {'continue': False}
 
+       def virtual(self, **kwargs):
+               ebuild = kwargs.get('ebuild')
+               if kwargs.get('catdir') == "virtual":
+                       for var in ("HOMEPAGE", "LICENSE"):
+                               if ebuild.metadata.get(var):
+                                       myqakey = var + ".virtual"
+                                       self.qatracker.add_error(myqakey, 
ebuild.relative_path)
                return {'continue': False}
 
        @property
@@ -39,4 +67,4 @@ class EbuildMetadata(object):
 
        @property
        def runInEbuilds(self):
-               return (True, [self.check])
+               return (True, [self.invalidchar, self.missing, 
self.old_virtual, self.virtual])

diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
index ec126e6..1a2de05 100644
--- a/pym/repoman/scanner.py
+++ b/pym/repoman/scanner.py
@@ -327,23 +327,6 @@ class Scanner(object):
                        if y_ebuild_continue:
                                continue
 
-
-                       for pos, missing_var in enumerate(missingvars):
-                               if not 
dynamic_data['ebuild'].metadata.get(missing_var):
-                                       if dynamic_data['catdir'] == "virtual" 
and \
-                                               missing_var in ("HOMEPAGE", 
"LICENSE"):
-                                               continue
-                                       if dynamic_data['live_ebuild'] and 
missing_var == "KEYWORDS":
-                                               continue
-                                       myqakey = missingvars[pos] + ".missing"
-                                       self.qatracker.add_error(myqakey, xpkg 
+ "/" + y_ebuild + ".ebuild")
-
-                       if dynamic_data['catdir'] == "virtual":
-                               for var in ("HOMEPAGE", "LICENSE"):
-                                       if 
dynamic_data['ebuild'].metadata.get(var):
-                                               myqakey = var + ".virtual"
-                                               
self.qatracker.add_error(myqakey, dynamic_data['ebuild'].relative_path)
-
                        if dynamic_data['live_ebuild'] and 
self.repo_settings.repo_config.name == "gentoo":
                                self.liveeclasscheck.check(
                                        dynamic_data['pkg'], xpkg, 
dynamic_data['ebuild'], y_ebuild, dynamic_data['ebuild'].keywords, 
self.repo_metadata['pmaskdict'])

Reply via email to