aboutsummaryrefslogtreecommitdiff
path: root/examples/check_version.py
blob: fd8c9763af2fcbca27f82ba0360dd03788809b03 (plain)
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))