Gentoo Archives: gentoo-commits

From: Markus Meier <maekke@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/maekke:master commit in: scripts/
Date: Mon, 29 Jul 2013 22:11:51
Message-Id: 1375136253.2ea9b8798ec3d10bacaa832a42508cdb789e9d3a.maekke@gentoo
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])