12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/usr/bin/env python3
- #
- # Copyright (c) 2021 Raspberry Pi (Trading) Ltd.
- #
- # SPDX-License-Identifier: BSD-3-Clause
- #
- #
- # Little script to check that every \ingroup has a matching \defgroup
- #
- # Usage:
- #
- # Run from the root of the tree to check
- import subprocess
- import re
- import sys
- import os
- groups = {}
- any_errors = False
- res = subprocess.run(['git', 'grep', '\\defgroup'], check=True, stdout=subprocess.PIPE)
- for line in res.stdout.decode('utf8').split('\n'):
- m = re.match(r'^(\S+):.*\\defgroup\s+(\w+)', line)
- if m:
- filename = m.group(1)
- group = m.group(2)
- if os.path.basename(filename) in ('check_doxygen_groups.py', 'index.h'):
- continue
- if group in groups:
- any_errors = True
- print("{} uses \\defgroup {} but so does {}".format(groups[group], group, filename))
- else:
- groups[group] = filename
- res = subprocess.run(['git', 'grep', '\\ingroup'], check=True, stdout=subprocess.PIPE)
- for line in res.stdout.decode('utf8').split('\n'):
- m = re.match(r'^(\S+):.*\\ingroup\s+(\w+)', line)
- if m:
- filename = m.group(1)
- group = m.group(2)
- if os.path.basename(filename) in ('check_doxygen_groups.py', 'index.h'):
- continue
- if group not in groups:
- any_errors = True
- print("{} uses \\ingroup {} which was never defined".format(filename, group))
- sys.exit(any_errors)
|