From 4d1ed70e5bfe9185beae5d4111ad76408ac79fec Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Tue, 18 Apr 2023 16:55:06 +0200 Subject: [PATCH] build(fluentscan): style changes --- fluentscan.py | 76 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 31 deletions(-) mode change 100644 => 100755 fluentscan.py diff --git a/fluentscan.py b/fluentscan.py old mode 100644 new mode 100755 index 91d76c2..1f3e632 --- a/fluentscan.py +++ b/fluentscan.py @@ -8,29 +8,34 @@ import sys import glob 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() -if sys.argv[2] not in valid_args: - print(f"invalid argument:{sys.argv[2]}\n Valid arguments: {valid_args}") +if sys.argv[1] not in valid_commands: + print(f"Invalid command \"{sys.argv[1]}\". Available commands: {valid_commands}") + sys.exit() -path = "assets/locales/" + sys.argv[1] + "/" +path = "assets/locales/" + sys.argv[2] + "/" + try: - x=open(path+"/main.ftl","r") - x.close() + open(path + "/main.ftl", "r").close() + except: print(f"{path} does not exist") + sys.exit() -all_entries={} +all_entries = {} def dict_compare(d1, d2): d1_keys = set(d1.keys()) d2_keys = set(d2.keys()) + shared_keys = d1_keys.intersection(d2_keys) added = d1_keys - d2_keys @@ -57,54 +62,61 @@ def to_dict(text): return result def get_line_num(text,pattern): - line=1 + line = 1 + for i in text.split("\n"): if pattern in i: return line + line += 1 for filename in os.listdir("assets/locales/en"): with open(os.path.join("assets/locales/en", filename), 'r') as locale_file: created_locale = open(path + filename) - expected=to_dict(locale_file) + expected = to_dict(locale_file) + expected2 = to_dict(created_locale) + all_entries.update(expected) - expected2=to_dict(created_locale) added, removed, same = dict_compare(expected, expected2) - if sys.argv[2] == "unused" or sys.argv[2] == "missing": - files = glob.glob("src/" + '/**/*.rs', recursive=True) - used=[] - vars={} + + if sys.argv[1] == "unused" or sys.argv[1] == "missing": + files = glob.glob("src/**/*.rs", recursive=True) + + used = [] + vars = {} + for i in files: - with open(i,"r") as script: - text=script.read() - if sys.argv[2] == "unused": + with open(i, "r") as script: + text = script.read() + + if sys.argv[1] == "unused": for j in expected: - if '"'+j+'"' in text: + if f"\"{j}\"" in text: used.append(j) - elif sys.argv[2] == "missing": + + elif sys.argv[1] == "missing": for j in text.split(): # TODO: ignore comments if 'tr("' in j: - index=j.find('tr("') - var_name=re.sub('[^\\w-]+', '', - j[index:].replace('tr("','') - .replace("Some","")) + index = j.find('tr("') + + var_name = re.sub('[^\\w-]+', '', j[index:].replace('tr("', '').replace("Some", "")) + # TODO: index multiple matches 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: if i not in used: print(f"[{locale_file.name}]\n" - " [Unused]\n" + " [Unused]\n" f" {i}") - 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:]}]") if added: @@ -128,10 +140,12 @@ for filename in os.listdir("assets/locales/en"): print("") -if sys.argv[2] == "missing": +if sys.argv[1] == "missing": added, removed, same = dict_compare(vars, all_entries) + if not added: - print("nothing is missing") + print("Nothing is missing") + for i in added: print(f"[{vars[i][0]}, line {vars[i][1]}]\n" " [Missing]\n"