1 |
commit: 0dcc20356b9c4e482c0e898d4a16fe63fc13e14d |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Jan 3 11:56:25 2016 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jan 27 22:44:23 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=0dcc2035 |
7 |
|
8 |
repoman: Migrate more metadata checks to ebuild_metadata.py |
9 |
|
10 |
.../modules/scan/metadata/ebuild_metadata.py | 32 ++++++++++++++++++++-- |
11 |
pym/repoman/scanner.py | 17 ------------ |
12 |
2 files changed, 30 insertions(+), 19 deletions(-) |
13 |
|
14 |
diff --git a/pym/repoman/modules/scan/metadata/ebuild_metadata.py b/pym/repoman/modules/scan/metadata/ebuild_metadata.py |
15 |
index 2dc1db2..77c947e 100644 |
16 |
--- a/pym/repoman/modules/scan/metadata/ebuild_metadata.py |
17 |
+++ b/pym/repoman/modules/scan/metadata/ebuild_metadata.py |
18 |
@@ -5,6 +5,8 @@ |
19 |
import re |
20 |
import sys |
21 |
|
22 |
+from repoman.qa_data import missingvars |
23 |
+ |
24 |
if sys.hexversion >= 0x3000000: |
25 |
basestring = str |
26 |
|
27 |
@@ -16,7 +18,7 @@ class EbuildMetadata(object): |
28 |
def __init__(self, **kwargs): |
29 |
self.qatracker = kwargs.get('qatracker') |
30 |
|
31 |
- def check(self, **kwargs): |
32 |
+ def invalidchar(self, **kwargs): |
33 |
ebuild = kwargs.get('ebuild') |
34 |
for k, v in ebuild.metadata.items(): |
35 |
if not isinstance(v, basestring): |
36 |
@@ -28,9 +30,35 @@ class EbuildMetadata(object): |
37 |
"%s: %s variable contains non-ASCII " |
38 |
"character at position %s" % |
39 |
(ebuild.relative_path, k, m.start() + 1)) |
40 |
+ return {'continue': False} |
41 |
+ |
42 |
+ def missing(self, **kwargs): |
43 |
+ ebuild = kwargs.get('ebuild') |
44 |
+ for pos, missing_var in enumerate(missingvars): |
45 |
+ if not ebuild.metadata.get(missing_var): |
46 |
+ if kwargs.get('catdir') == "virtual" and \ |
47 |
+ missing_var in ("HOMEPAGE", "LICENSE"): |
48 |
+ continue |
49 |
+ if kwargs.get('live_ebuild') and missing_var == "KEYWORDS": |
50 |
+ continue |
51 |
+ myqakey = missingvars[pos] + ".missing" |
52 |
+ self.qatracker.add_error(myqakey, '%s/%s.ebuild' |
53 |
+ % (kwargs.get('xpkg'), kwargs.get('y_ebuild'))) |
54 |
+ return {'continue': False} |
55 |
+ |
56 |
+ def old_virtual(self, **kwargs): |
57 |
+ ebuild = kwargs.get('ebuild') |
58 |
if ebuild.metadata.get("PROVIDE"): |
59 |
self.qatracker.add_error("virtual.oldstyle", ebuild.relative_path) |
60 |
+ return {'continue': False} |
61 |
|
62 |
+ def virtual(self, **kwargs): |
63 |
+ ebuild = kwargs.get('ebuild') |
64 |
+ if kwargs.get('catdir') == "virtual": |
65 |
+ for var in ("HOMEPAGE", "LICENSE"): |
66 |
+ if ebuild.metadata.get(var): |
67 |
+ myqakey = var + ".virtual" |
68 |
+ self.qatracker.add_error(myqakey, ebuild.relative_path) |
69 |
return {'continue': False} |
70 |
|
71 |
@property |
72 |
@@ -39,4 +67,4 @@ class EbuildMetadata(object): |
73 |
|
74 |
@property |
75 |
def runInEbuilds(self): |
76 |
- return (True, [self.check]) |
77 |
+ return (True, [self.invalidchar, self.missing, self.old_virtual, self.virtual]) |
78 |
|
79 |
diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py |
80 |
index 3ea27b6..335590b 100644 |
81 |
--- a/pym/repoman/scanner.py |
82 |
+++ b/pym/repoman/scanner.py |
83 |
@@ -327,23 +327,6 @@ class Scanner(object): |
84 |
if y_ebuild_continue: |
85 |
continue |
86 |
|
87 |
- |
88 |
- for pos, missing_var in enumerate(missingvars): |
89 |
- if not dynamic_data['ebuild'].metadata.get(missing_var): |
90 |
- if dynamic_data['catdir'] == "virtual" and \ |
91 |
- missing_var in ("HOMEPAGE", "LICENSE"): |
92 |
- continue |
93 |
- if dynamic_data['live_ebuild'] and missing_var == "KEYWORDS": |
94 |
- continue |
95 |
- myqakey = missingvars[pos] + ".missing" |
96 |
- self.qatracker.add_error(myqakey, xpkg + "/" + y_ebuild + ".ebuild") |
97 |
- |
98 |
- if dynamic_data['catdir'] == "virtual": |
99 |
- for var in ("HOMEPAGE", "LICENSE"): |
100 |
- if dynamic_data['ebuild'].metadata.get(var): |
101 |
- myqakey = var + ".virtual" |
102 |
- self.qatracker.add_error(myqakey, dynamic_data['ebuild'].relative_path) |
103 |
- |
104 |
if dynamic_data['live_ebuild'] and self.repo_settings.repo_config.name == "gentoo": |
105 |
self.liveeclasscheck.check( |
106 |
dynamic_data['pkg'], xpkg, dynamic_data['ebuild'], y_ebuild, dynamic_data['ebuild'].keywords, self.repo_metadata['pmaskdict']) |