1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/usr/bin/python
#
# Check that all poms have the given version
import os
import sys
from optparse import OptionParser
from pomop.pom import Pom
import logging
def main(argv):
parser = OptionParser(usage='%prog [options] version directory')
level = logging.WARNING
parser.add_option("--debug", action="store_true", dest="debug",
default=False, help="enable debug output")
parser.add_option("--sloppy", action="store_true", dest="sloppy",
default=False, help="wether to use a sloppy parser")
(options, args) = parser.parse_args(argv[1:])
if len(args) != 2:
parser.print_help()
return 1
else:
version, rootdir = args
if options.debug:
level = logging.DEBUG
logging.basicConfig(level=level,
format='%(levelname)s: %(message)s')
violations = []
for root, subFolders, files in os.walk(rootdir):
if 'pom.xml' in files:
path = os.path.join(root, 'pom.xml')
logging.debug("Parsing %s", path)
p = Pom.read(path, options.sloppy)
if p.version and not p.version.is_subst() and str(p.version) != version:
violations.append((path, p.version))
if violations:
print "Found the following versions not matching '%s':" % version
for v in violations:
print "%s: '%s'" % (v[0], v[1])
return 1
else:
print "All pom versions match %s" % version
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))
|