mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2024-11-28 13:53:45 +01:00
Merge pull request 'luacheck conf generator' (#1664) from luacheck-script into master
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/1664
This commit is contained in:
commit
1601437510
@ -7,7 +7,7 @@ end
|
||||
|
||||
--[[ Manually set in 'buildings.lua'
|
||||
-- material to replace cobblestone with
|
||||
wallmaterial = {
|
||||
local wallmaterial = {
|
||||
"mcl_core:junglewood",
|
||||
"mcl_core:sprucewood",
|
||||
"mcl_core:wood",
|
||||
|
@ -27,3 +27,17 @@ Usage:
|
||||
- Convert the textures
|
||||
- Put the new texture directory in the Minetest texture pack directory, just like
|
||||
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
|
||||
|
44
tools/create_luacheck.py
Normal file → Executable file
44
tools/create_luacheck.py
Normal file → Executable file
@ -0,0 +1,44 @@
|
||||
import os
|
||||
import re
|
||||
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/"
|
||||
|
||||
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]+)')
|
||||
|
||||
global_vars = []
|
||||
|
||||
|
||||
print("---Copy/Paste output in your luacheck conf file---\n")
|
||||
|
||||
|
||||
pathlist = Path(path).rglob('*.lua')
|
||||
for path in pathlist:
|
||||
path_in_str = str(path)
|
||||
# print(path_in_str)
|
||||
trouve = False
|
||||
with open(path_in_str) as f:
|
||||
local_vars = []
|
||||
for i, line in enumerate(f.readlines()):
|
||||
m = pattern.match(line)
|
||||
if m:
|
||||
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
|
||||
break
|
||||
|
||||
else:
|
||||
n = pattern_local.match(line)
|
||||
if n:
|
||||
local_vars.append(n.group('local_var'))
|
||||
|
||||
if not found:
|
||||
nb_varloc = len(variables_locales)
|
||||
#print(path_in_str, ": -", "({} variables locales)".format(nb_varloc) if nb_varloc > 0 else '')
|
||||
|
||||
print(', '.join(['"{}"'.format(v) for v in global_vars]))
|
Loading…
Reference in New Issue
Block a user