diff --git a/tests/tools_test.py b/tests/tools_test.py index ec37d0e..5766403 100755 --- a/tests/tools_test.py +++ b/tests/tools_test.py @@ -218,7 +218,7 @@ class ToolsTestCase(unittest.TestCase): self._test_tool(tools.php7_syntax, [("root.php", tools.Status.ok)]) def test_pil(self): - for extension in tools.IMAGE_EXTENSIONS: + for extension in ["png", "jpg", "gif", "bmp", "ppm", "tiff", "tga"]: self._test_tool(tools.pil, [("circle." + extension, tools.Status.normal)]) diff --git a/vigil/tools.py b/vigil/tools.py index cdc58bc..91495c0 100644 --- a/vigil/tools.py +++ b/vigil/tools.py @@ -648,6 +648,8 @@ def make_tool_function(dependencies, url, command, success_status=None, tools_toml_path = os.path.join(os.path.dirname(__file__), "tools.toml") with open(tools_toml_path) as tools_toml_file: tools_toml = toml.load(tools_toml_file) +tools_for_extensions = tools_toml["tools_for_extensions"] +del tools_toml["tools_for_extensions"] for tool_name, tool_toml in tools_toml.items(): tool_func = make_tool_function(**tool_toml) tool_func.__name__ = tool_func.__qualname__ = tool_name @@ -780,33 +782,10 @@ def generic_tools(): return [contents, metadata] -IMAGE_EXTENSIONS = ["png", "jpg", "gif", "bmp", "ppm", "tiff", "tga"] - - -TOOLS_FOR_EXTENSIONS = \ - [ - (["py"], [python_syntax, python_unittests, pydoc, mypy, - python_coverage, pycodestyle, pyflakes, pylint, python_gut, - python_modulefinder, dis, python_mccabe, bandit]), - # (["pyc"], [pydisasm]), - (["pl", "pm", "t"], [perl_syntax, perldoc, perltidy]), - # (["p6", "pm6"], [perl6_syntax, perldoc]), - (["pod", "pod6"], [perldoc]), - (["java"], [uncrustify]), - (["c", "h"], [c_syntax_gcc, splint, uncrustify, cppcheck]), - (["o"], [objdump_headers, objdump_disassemble, readelf]), - (["cc", "cpp", "hpp"], [cpp_syntax_gcc, bcpp, uncrustify, cppcheck]), - (["pdf"], [pdf2txt]), - (["html"], [html_syntax, tidy, html2text]), - (["php"], [php7_syntax]), - (["zip"], [unzip]), - (["tar.gz", "tgz"], [tar_gz]), - (["tar.bz2"], [tar_bz2]), - (["a", "so"], [nm]), - (IMAGE_EXTENSIONS, [pil, pil_half]), - (["bash", "sh", "dash", "ksh"], [shellcheck]), - (["go"], [gofmt, go_vet, godoc]) - ] +TOOLS_FOR_EXTENSIONS = [] +for extensions, tool_names in tools_for_extensions: + TOOLS_FOR_EXTENSIONS.append( + (extensions, [globals()[tool_name] for tool_name in tool_names])) @functools.lru_cache(maxsize=1) diff --git a/vigil/tools.toml b/vigil/tools.toml index 6016d56..52b7c24 100644 --- a/vigil/tools.toml +++ b/vigil/tools.toml @@ -1,6 +1,29 @@ +tools_for_extensions = [ + [["py"], ["python_syntax", "python_unittests", "pydoc", "mypy", + "python_coverage", "pycodestyle", "pyflakes", "pylint", + "python_gut", "python_modulefinder", "dis", "python_mccabe", + "bandit"]], +# [["pyc"], ["pydisasm"]], + [["pl", "pm", "t"], ["perl_syntax", "perldoc", "perltidy"]], +# [["p6", "pm6"], ["perl6_syntax", "perldoc"]], + [["pod", "pod6"], ["perldoc"]], [["java"], ["uncrustify"]], + [["c", "h"], ["c_syntax_gcc", "splint", "uncrustify", "cppcheck"]], + [["o"], ["objdump_headers", "objdump_disassemble", "readelf"]], + [["cc", "cpp", "hpp"], ["cpp_syntax_gcc", "bcpp", "uncrustify", + "cppcheck"]], + [["pdf"], ["pdf2txt"]], + [["html"], ["html_syntax", "tidy", "html2text"]], + [["php"], ["php7_syntax"]], + [["zip"], ["unzip"]], + [["tar.gz", "tgz"],["tar_gz"]], + [["tar.bz2"], ["tar_bz2"]], + [["a", "so"], ["nm"]], + [["png", "jpg", "gif", "bmp", "ppm", "tiff", "tga"], ["pil", "pil_half"]], + [["bash", "sh", "dash", "ksh"], ["shellcheck"]], + [["go"], ["gofmt", "go_vet", "godoc"]]] -# Template: +# Tool template: # [] # dependencies = [""] # url = "" @@ -8,7 +31,6 @@ # success_status = "" # error_status = "" - [objdump_headers] dependencies = ["binutils"] url = "https://en.wikipedia.org/wiki/Objdump"