document script

This commit is contained in:
AFCMS 2021-05-10 09:58:26 +02:00
parent 45201481c1
commit 81ee51b0c2
2 changed files with 31 additions and 18 deletions

View file

@ -27,3 +27,17 @@ Usage:
- Convert the textures - Convert the textures
- Put the new texture directory in the Minetest texture pack directory, just like - Put the new texture directory in the Minetest texture pack directory, just like
any other Minetest texture pack any other Minetest texture pack
## Luacheck Globals Generators
This is a Python script which list every single global tables in mineclone2 source code.
It outputs a list to be used in luacheck conf files.
Modes of operation:
- List global tables
Requirements:
- Know how to use the console
- Python 3
Usage:
- In the console, run `python3 ./tools/create_luacheck.py` in the MineClone2 directory

View file

@ -2,44 +2,43 @@ import os
import re import re
from pathlib import Path from pathlib import Path
# Just run this script from mineclone2 directory to get a list of every global vars to use in luacheck configuration files
path = "./mods/" path = "./mods/"
# pattern = re.compile(r'^(?P<nomtableau>[^ \t\]]+)[ ]*=[ ]*\{')
pattern = re.compile(r'^(?P<nomtableau>[A-Za-z_0-9]+)[ ]*=[ ]*\{') pattern = re.compile(r'^(?P<global_var>[A-Za-z_0-9]+)[ ]*=[ ]*\{')
pattern_local = re.compile(r'local (?P<nomvar>[A-Za-z_0-9]+)') pattern_local = re.compile(r'local (?P<local_var>[A-Za-z_0-9]+)')
global_vars = [] global_vars = []
print("---Copy/Paste output in your luacheck conf file---\n")
pathlist = Path(path).rglob('*.lua') pathlist = Path(path).rglob('*.lua')
for path in pathlist: for path in pathlist:
path_in_str = str(path) path_in_str = str(path)
# print(path_in_str) # print(path_in_str)
trouve = False trouve = False
with open(path_in_str) as f: with open(path_in_str) as f:
variables_locales = [] local_vars = []
for i, line in enumerate(f.readlines()): for i, line in enumerate(f.readlines()):
m = pattern.match(line) m = pattern.match(line)
if m: if m:
nomtableau = m.group('nomtableau') global_name = m.group('global_var')
if nomtableau not in variables_locales: if global_name not in local_vars:
print(path_in_str, ":", i+1, ":", m.group('nomtableau').strip()) #print(path_in_str, ":", i+1, ":", m.group('global_var').strip())
global_vars.append(m.group('nomtableau').strip()) global_vars.append(m.group('global_var').strip())
trouve = True found = True
break break
else: else:
n = pattern_local.match(line) n = pattern_local.match(line)
if n: if n:
variables_locales.append(n.group('nomvar')) local_vars.append(n.group('local_var'))
if not trouve: if not found:
nb_varloc = len(variables_locales) nb_varloc = len(variables_locales)
#print(path_in_str, ": -", "({} variables locales)".format(nb_varloc) if nb_varloc > 0 else '') #print(path_in_str, ": -", "({} variables locales)".format(nb_varloc) if nb_varloc > 0 else '')
""" for subdir, dirs, files in os.walk(path):
for file in files:
print(os.path.join(subdir, file))
filepath = subdir + os.sep + file
if filepath.endswith(".lua"):
print(filepath) """
print(', '.join(['"{}"'.format(v) for v in global_vars])) print(', '.join(['"{}"'.format(v) for v in global_vars]))