tahoe-lafs/misc/coding_tools/check-umids.py
Brian Warner 36c57c74f4 make tox env for code-checks
This executes: check-debugging, check-interfaces, check-miscaptures,
find-trailing-spaces, check-umids, pyflakes.

Other changes:

* fix check-umids.py to take starting points. run it as `check-umids.py
  src` instead of `check-umids.py src/allmydata/*.py`
* check-debugging: rewrite in python to run from tox: tox doesn't like
  to run shell scripts.
* put check-interfaces.py last: it produces lots of warnings, but passes
  anyways. The others only produce significant output if they fail.
2016-08-19 17:42:05 -07:00

33 lines
1008 B
Python

#! /usr/bin/python
# ./check-umids.py src
import sys, re, os
ok = True
umids = {}
for starting_point in sys.argv[1:]:
for root, dirs, files in os.walk(starting_point):
for fn in [f for f in files if f.endswith(".py")]:
fn = os.path.join(root, fn)
for lineno,line in enumerate(open(fn, "r").readlines()):
lineno = lineno+1
if "umid" not in line:
continue
mo = re.search("umid=[\"\']([^\"\']+)[\"\']", line)
if mo:
umid = mo.group(1)
if umid in umids:
oldfn, oldlineno = umids[umid]
print "%s:%d: duplicate umid '%s'" % (fn, lineno, umid)
print "%s:%d: first used here" % (oldfn, oldlineno)
ok = False
umids[umid] = (fn,lineno)
if ok:
print "all umids are unique"
else:
print "some umids were duplicates"
sys.exit(1)