mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-27 22:09:40 +00:00
python: add check-first-header tool
The first #include statement in all FRR .c files should be either zebra.h or config.h. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
94cfb0692e
commit
980ab2de52
30
python/firstheader.py
Normal file
30
python/firstheader.py
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# check that the first header included in C files is either
|
||||
# zebra.h or config.h
|
||||
#
|
||||
|
||||
import sys, os, re, subprocess
|
||||
|
||||
include_re = re.compile('^#\s*include\s+["<]([^ ">]+)[">]', re.M)
|
||||
|
||||
errors = 0
|
||||
|
||||
files = subprocess.check_output(['git', 'ls-files']).decode('ASCII')
|
||||
for fn in files.splitlines():
|
||||
if not fn.endswith('.c'):
|
||||
continue
|
||||
if fn.startswith('tools/'):
|
||||
continue
|
||||
with open(fn, 'r') as fd:
|
||||
data = fd.read()
|
||||
m = include_re.search(data)
|
||||
if m is None:
|
||||
#sys.stderr.write('no #include in %s?\n' % (fn))
|
||||
continue
|
||||
if m.group(1) in ['config.h', 'zebra.h', 'lib/zebra.h']:
|
||||
continue
|
||||
sys.stderr.write('%s: %s\n' % (fn, m.group(0)))
|
||||
errors += 1
|
||||
|
||||
if errors:
|
||||
sys.exit(1)
|
||||
Loading…
Reference in New Issue
Block a user