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
|
#!/usr/bin/env python3
"""Find entries in struct_info.json that are not needd by
any JS library code and can be removed."""
import json
import os
import sys
import subprocess
script_dir = os.path.dirname(os.path.abspath(__file__))
root_dir = os.path.dirname(os.path.dirname(script_dir))
sys.path.insert(0, root_dir)
from tools import utils
def check_structs(info):
for struct, values in info['structs'].items():
key = 'C_STRUCTS\\.' + struct + '\\.'
# grep --quiet ruturns 0 when there is a match
if subprocess.run(['git', 'grep', '--quiet', key], check=False).returncode != 0:
print(key)
else:
for value in values:
if value != '__size__':
key = 'C_STRUCTS\\.' + struct + '\\.' + value
# grep --quiet ruturns 0 when there is a match
if subprocess.run(['git', 'grep', '--quiet', key], check=False).returncode != 0:
print(key)
def check_defines(info):
for define in info['defines'].keys():
key = r'cDefs\.' + define + r'\>'
# grep --quiet ruturns 0 when there is a match
if subprocess.run(['git', 'grep', '--quiet', key], check=False).returncode != 0:
print(define)
def main():
json_file = utils.path_from_root('src/struct_info_generated.json')
info = json.loads(utils.read_file(json_file))
check_structs(info)
check_defines(info)
return 0
if __name__ == '__main__':
sys.exit(main())
|