1 |
commit: 2ea9b8798ec3d10bacaa832a42508cdb789e9d3a |
2 |
Author: Markus Meier <maekke <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jul 29 22:17:33 2013 +0000 |
4 |
Commit: Markus Meier <maekke <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jul 29 22:17:33 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/maekke.git;a=commit;h=2ea9b879 |
7 |
|
8 |
add script to run repoman LineChecks on eclasses |
9 |
|
10 |
--- |
11 |
scripts/repoman-checks-eclass.py | 45 ++++++++++++++++++++++++++++++++++++++++ |
12 |
1 file changed, 45 insertions(+) |
13 |
|
14 |
diff --git a/scripts/repoman-checks-eclass.py b/scripts/repoman-checks-eclass.py |
15 |
new file mode 100755 |
16 |
index 0000000..fd8b575 |
17 |
--- /dev/null |
18 |
+++ b/scripts/repoman-checks-eclass.py |
19 |
@@ -0,0 +1,45 @@ |
20 |
+#!/usr/bin/env python |
21 |
+ |
22 |
+import io |
23 |
+import os |
24 |
+import sys |
25 |
+from repoman.checks import run_checks |
26 |
+ |
27 |
+class DummyPkg: |
28 |
+ def __init__(self, name): |
29 |
+ self.name = name |
30 |
+ self.mtime = None |
31 |
+ self.eapi = 0 |
32 |
+ self.inherited = '' |
33 |
+ |
34 |
+class RepoClass: |
35 |
+ def __init__(self): |
36 |
+ self._repodir = None |
37 |
+ |
38 |
+ def run(self, repodir=None): |
39 |
+ self._repodir = repodir |
40 |
+ eclasses = self._getEclasses() |
41 |
+ self._runChecks(eclasses) |
42 |
+ |
43 |
+ def _getEclasses(self): |
44 |
+ eclasses = [] |
45 |
+ eclassdir = os.path.join(self._repodir, 'eclass') |
46 |
+ for file in os.listdir(eclassdir): |
47 |
+ if file.endswith('.eclass'): |
48 |
+ eclasses.append(os.path.join(eclassdir, file)) |
49 |
+ eclasses.sort() |
50 |
+ return eclasses |
51 |
+ |
52 |
+ def _runChecks(self, eclasses): |
53 |
+ for eclass in eclasses: |
54 |
+ pkg = DummyPkg(eclass) |
55 |
+ f = io.open(eclass, mode='r') |
56 |
+ try: |
57 |
+ for check_name, e in run_checks(f, pkg): |
58 |
+ if not e.startswith('valid EAPI assignment must occur on or before line'): |
59 |
+ print '%s --> %s: %s' % (os.path.basename(eclass), check_name, e) |
60 |
+ finally: |
61 |
+ f.close() |
62 |
+ |
63 |
+rc = RepoClass() |
64 |
+rc.run(repodir=sys.argv[1]) |