tools: Moved TOOLS_FOR_EXTENSIONS into tools.toml
- Now a tool can be added/removed by editing one file.
This commit is contained in:
parent
915eac35ba
commit
f414cc4a96
3 changed files with 31 additions and 30 deletions
|
|
@ -218,7 +218,7 @@ class ToolsTestCase(unittest.TestCase):
|
||||||
self._test_tool(tools.php7_syntax, [("root.php", tools.Status.ok)])
|
self._test_tool(tools.php7_syntax, [("root.php", tools.Status.ok)])
|
||||||
|
|
||||||
def test_pil(self):
|
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,
|
self._test_tool(tools.pil, [("circle." + extension,
|
||||||
tools.Status.normal)])
|
tools.Status.normal)])
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
tools_toml_path = os.path.join(os.path.dirname(__file__), "tools.toml")
|
||||||
with open(tools_toml_path) as tools_toml_file:
|
with open(tools_toml_path) as tools_toml_file:
|
||||||
tools_toml = toml.load(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():
|
for tool_name, tool_toml in tools_toml.items():
|
||||||
tool_func = make_tool_function(**tool_toml)
|
tool_func = make_tool_function(**tool_toml)
|
||||||
tool_func.__name__ = tool_func.__qualname__ = tool_name
|
tool_func.__name__ = tool_func.__qualname__ = tool_name
|
||||||
|
|
@ -780,33 +782,10 @@ def generic_tools():
|
||||||
return [contents, metadata]
|
return [contents, metadata]
|
||||||
|
|
||||||
|
|
||||||
IMAGE_EXTENSIONS = ["png", "jpg", "gif", "bmp", "ppm", "tiff", "tga"]
|
TOOLS_FOR_EXTENSIONS = []
|
||||||
|
for extensions, tool_names in tools_for_extensions:
|
||||||
|
TOOLS_FOR_EXTENSIONS.append(
|
||||||
TOOLS_FOR_EXTENSIONS = \
|
(extensions, [globals()[tool_name] for tool_name in tool_names]))
|
||||||
[
|
|
||||||
(["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])
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
@functools.lru_cache(maxsize=1)
|
@functools.lru_cache(maxsize=1)
|
||||||
|
|
|
||||||
|
|
@ -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 = [""]
|
# dependencies = [""]
|
||||||
# url = ""
|
# url = ""
|
||||||
|
|
@ -8,7 +31,6 @@
|
||||||
# success_status = ""
|
# success_status = ""
|
||||||
# error_status = ""
|
# error_status = ""
|
||||||
|
|
||||||
|
|
||||||
[objdump_headers]
|
[objdump_headers]
|
||||||
dependencies = ["binutils"]
|
dependencies = ["binutils"]
|
||||||
url = "https://en.wikipedia.org/wiki/Objdump"
|
url = "https://en.wikipedia.org/wiki/Objdump"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue