build(fluentscan): style changes
This commit is contained in:
parent
7d14c65bbe
commit
4d1ed70e5b
1 changed files with 45 additions and 31 deletions
58
fluentscan.py
Normal file → Executable file
58
fluentscan.py
Normal file → Executable file
|
@ -8,22 +8,26 @@ import sys
|
||||||
import glob
|
import glob
|
||||||
import re
|
import re
|
||||||
|
|
||||||
valid_args=["diff","unused","missing"]
|
valid_commands = ["diff", "unused", "missing"]
|
||||||
|
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print(f"Command format: ./fluentscan.py [command] [locale]\nAvailable commands: {valid_commands}")
|
||||||
|
|
||||||
if len(sys.argv)<3 or len(sys.argv) == 0:
|
|
||||||
print("missing arguments")
|
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
if sys.argv[2] not in valid_args:
|
if sys.argv[1] not in valid_commands:
|
||||||
print(f"invalid argument:{sys.argv[2]}\n Valid arguments: {valid_args}")
|
print(f"Invalid command \"{sys.argv[1]}\". Available commands: {valid_commands}")
|
||||||
|
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
path = "assets/locales/" + sys.argv[1] + "/"
|
path = "assets/locales/" + sys.argv[2] + "/"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
x=open(path+"/main.ftl","r")
|
open(path + "/main.ftl", "r").close()
|
||||||
x.close()
|
|
||||||
except:
|
except:
|
||||||
print(f"{path} does not exist")
|
print(f"{path} does not exist")
|
||||||
|
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
all_entries = {}
|
all_entries = {}
|
||||||
|
@ -31,6 +35,7 @@ all_entries={}
|
||||||
def dict_compare(d1, d2):
|
def dict_compare(d1, d2):
|
||||||
d1_keys = set(d1.keys())
|
d1_keys = set(d1.keys())
|
||||||
d2_keys = set(d2.keys())
|
d2_keys = set(d2.keys())
|
||||||
|
|
||||||
shared_keys = d1_keys.intersection(d2_keys)
|
shared_keys = d1_keys.intersection(d2_keys)
|
||||||
|
|
||||||
added = d1_keys - d2_keys
|
added = d1_keys - d2_keys
|
||||||
|
@ -58,9 +63,11 @@ def to_dict(text):
|
||||||
|
|
||||||
def get_line_num(text,pattern):
|
def get_line_num(text,pattern):
|
||||||
line = 1
|
line = 1
|
||||||
|
|
||||||
for i in text.split("\n"):
|
for i in text.split("\n"):
|
||||||
if pattern in i:
|
if pattern in i:
|
||||||
return line
|
return line
|
||||||
|
|
||||||
line += 1
|
line += 1
|
||||||
|
|
||||||
for filename in os.listdir("assets/locales/en"):
|
for filename in os.listdir("assets/locales/en"):
|
||||||
|
@ -68,43 +75,48 @@ for filename in os.listdir("assets/locales/en"):
|
||||||
created_locale = open(path + filename)
|
created_locale = open(path + filename)
|
||||||
|
|
||||||
expected = to_dict(locale_file)
|
expected = to_dict(locale_file)
|
||||||
all_entries.update(expected)
|
|
||||||
expected2 = to_dict(created_locale)
|
expected2 = to_dict(created_locale)
|
||||||
|
|
||||||
|
all_entries.update(expected)
|
||||||
|
|
||||||
added, removed, same = dict_compare(expected, expected2)
|
added, removed, same = dict_compare(expected, expected2)
|
||||||
if sys.argv[2] == "unused" or sys.argv[2] == "missing":
|
|
||||||
files = glob.glob("src/" + '/**/*.rs', recursive=True)
|
if sys.argv[1] == "unused" or sys.argv[1] == "missing":
|
||||||
|
files = glob.glob("src/**/*.rs", recursive=True)
|
||||||
|
|
||||||
used = []
|
used = []
|
||||||
vars = {}
|
vars = {}
|
||||||
|
|
||||||
for i in files:
|
for i in files:
|
||||||
with open(i, "r") as script:
|
with open(i, "r") as script:
|
||||||
text = script.read()
|
text = script.read()
|
||||||
if sys.argv[2] == "unused":
|
|
||||||
|
if sys.argv[1] == "unused":
|
||||||
for j in expected:
|
for j in expected:
|
||||||
if '"'+j+'"' in text:
|
if f"\"{j}\"" in text:
|
||||||
used.append(j)
|
used.append(j)
|
||||||
elif sys.argv[2] == "missing":
|
|
||||||
|
elif sys.argv[1] == "missing":
|
||||||
for j in text.split():
|
for j in text.split():
|
||||||
# TODO: ignore comments
|
# TODO: ignore comments
|
||||||
if 'tr("' in j:
|
if 'tr("' in j:
|
||||||
index = j.find('tr("')
|
index = j.find('tr("')
|
||||||
var_name=re.sub('[^\\w-]+', '',
|
|
||||||
j[index:].replace('tr("','')
|
var_name = re.sub('[^\\w-]+', '', j[index:].replace('tr("', '').replace("Some", ""))
|
||||||
.replace("Some",""))
|
|
||||||
# TODO: index multiple matches
|
# TODO: index multiple matches
|
||||||
vars[var_name] = [script.name, get_line_num(text,var_name)]
|
vars[var_name] = [script.name, get_line_num(text,var_name)]
|
||||||
|
|
||||||
if sys.argv[2] == "unused":
|
if sys.argv[1] == "unused":
|
||||||
for i in expected:
|
for i in expected:
|
||||||
if i not in used:
|
if i not in used:
|
||||||
print(f"[{locale_file.name}]\n"
|
print(f"[{locale_file.name}]\n"
|
||||||
" [Unused]\n"
|
" [Unused]\n"
|
||||||
f" {i}")
|
f" {i}")
|
||||||
|
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if (added or removed or same) and sys.argv[2] == "diff":
|
if (added or removed or same) and sys.argv[1] == "diff":
|
||||||
print(f"[{created_locale.name[15:]}]")
|
print(f"[{created_locale.name[15:]}]")
|
||||||
|
|
||||||
if added:
|
if added:
|
||||||
|
@ -128,10 +140,12 @@ for filename in os.listdir("assets/locales/en"):
|
||||||
|
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
if sys.argv[2] == "missing":
|
if sys.argv[1] == "missing":
|
||||||
added, removed, same = dict_compare(vars, all_entries)
|
added, removed, same = dict_compare(vars, all_entries)
|
||||||
|
|
||||||
if not added:
|
if not added:
|
||||||
print("nothing is missing")
|
print("Nothing is missing")
|
||||||
|
|
||||||
for i in added:
|
for i in added:
|
||||||
print(f"[{vars[i][0]}, line {vars[i][1]}]\n"
|
print(f"[{vars[i][0]}, line {vars[i][1]}]\n"
|
||||||
" [Missing]\n"
|
" [Missing]\n"
|
||||||
|
|
Loading…
Reference in a new issue