From 019dfdd9d635556576c1070b413e69d7018eb3b3 Mon Sep 17 00:00:00 2001 From: Sun Howwrongbum Date: Fri, 31 Dec 2021 08:16:39 +0530 Subject: docs: add script to generate config snippets --- tools/gen-config-doc.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tools/gen-config-doc.py (limited to 'tools') diff --git a/tools/gen-config-doc.py b/tools/gen-config-doc.py new file mode 100644 index 000000000..a0f3014b0 --- /dev/null +++ b/tools/gen-config-doc.py @@ -0,0 +1,47 @@ +#!/usr/bin/python + +import re + + +def get_config_key_descriptions(): + desc_re = re.compile(r"(/\*\*\n|\s+\*/|\s+\*)") + key_match_re = re.compile(r"\(\n(.+)\);", re.DOTALL) + key_split_re = re.compile(r",\s+", re.DOTALL) + snippets = [] + + with open("../src/main/java/org/traccar/config/Keys.java", "r") as f: + code = f.read() + config = re.findall( + r"(/\*\*.*?\*/)\n\s+(public static final Config.*?;)", code, re.DOTALL + ) + for i in config: + try: + key_match = key_match_re.search(i[1]) + if key_match: + description = desc_re.sub("", i[0]).strip() + terms = [x.strip() for x in key_split_re.split(key_match.group(1))] + key = terms[0].replace('"', "") + default = terms[2] if len(terms) == 3 else None + snippets.append( + f"""
+
+
+ {key} config +
+

+ {description}{f" Default: {default}" if default else ""} +

+
+
""" + ) + except IndexError: + # will continue if key_match.group(1) or terms[0] does not exist + # for some reason + pass + + return ("\n").join(snippets) + + +if __name__ == "__main__": + html = get_config_key_descriptions() + print(html) -- cgit v1.2.3