1
0
Fork 0
MineClone2/tools/create_luacheck.py

45 lines
1.4 KiB
Python
Raw Normal View History

2021-04-26 17:16:27 +00:00
import os
import re
from pathlib import Path
2021-05-10 07:58:26 +00:00
# Just run this script from mineclone2 directory to get a list of every global vars to use in luacheck configuration files
2021-04-27 17:16:08 +00:00
path = "./mods/"
2021-05-10 07:58:26 +00:00
pattern = re.compile(r'^(?P<global_var>[A-Za-z_0-9]+)[ ]*=[ ]*\{')
pattern_local = re.compile(r'local (?P<local_var>[A-Za-z_0-9]+)')
2021-04-27 17:16:08 +00:00
2021-05-03 20:11:49 +00:00
global_vars = []
2021-04-26 17:16:27 +00:00
2021-05-10 07:58:26 +00:00
print("---Copy/Paste output in your luacheck conf file---\n")
2021-04-26 17:16:27 +00:00
pathlist = Path(path).rglob('*.lua')
for path in pathlist:
path_in_str = str(path)
2021-04-27 17:16:08 +00:00
# print(path_in_str)
found = False
2021-04-26 17:16:27 +00:00
with open(path_in_str) as f:
2021-05-10 07:58:26 +00:00
local_vars = []
2021-04-27 17:16:08 +00:00
for i, line in enumerate(f.readlines()):
m = pattern.match(line)
if m:
2021-05-10 07:58:26 +00:00
global_name = m.group('global_var')
if global_name not in local_vars:
#print(path_in_str, ":", i+1, ":", m.group('global_var').strip())
global_vars.append(m.group('global_var').strip())
found = True
2021-05-03 20:11:49 +00:00
break
else:
n = pattern_local.match(line)
if n:
2021-05-10 07:58:26 +00:00
local_vars.append(n.group('local_var'))
2021-05-03 20:11:49 +00:00
2021-05-10 07:58:26 +00:00
if not found:
nb_varloc = len(local_vars)
2021-05-03 20:11:49 +00:00
#print(path_in_str, ": -", "({} variables locales)".format(nb_varloc) if nb_varloc > 0 else '')
2021-04-26 17:16:27 +00:00
2021-05-03 20:11:49 +00:00
print(', '.join(['"{}"'.format(v) for v in global_vars]))