aboutsummaryrefslogtreecommitdiffstats
path: root/docs/scripts/options.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/scripts/options.py')
-rwxr-xr-x[-rw-r--r--]docs/scripts/options.py45
1 files changed, 42 insertions, 3 deletions
diff --git a/docs/scripts/options.py b/docs/scripts/options.py
index 5ad23d67..ff7d0f7f 100644..100755
--- a/docs/scripts/options.py
+++ b/docs/scripts/options.py
@@ -1,4 +1,5 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
+
from mitmproxy import options, optmanager
from mitmproxy.tools import dump, console, web
@@ -8,7 +9,45 @@ masters = {
"mitmweb": web.master.WebMaster
}
-for name, master in masters.items():
+unified_options = {}
+
+for tool_name, master in masters.items():
opts = options.Options()
inst = master(opts)
- print(optmanager.dump_dicts(opts))
+ for key, option in optmanager.dump_dicts(opts).items():
+ if key in unified_options:
+ unified_options[key]['tools'].append(tool_name)
+ else:
+ unified_options[key] = option
+ unified_options[key]['tools'] = [tool_name]
+
+print("""
+ <table class=\"table optiontable\">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ """.strip())
+for key, option in sorted(unified_options.items(), key=lambda t: t[0]):
+ print("""
+ <tr>
+ <th>{}<br/>{}</th>
+ <td>{}</td>
+ <td>{}<br/>
+ Default: {}
+ {}
+ </td>
+ </tr>
+ """.strip().format(
+ key,
+ ' '.join(["<span class='badge'>{}</span>".format(t) for t in option['tools']]),
+ option['type'],
+ option['help'],
+ option['default'],
+ "<br/>Choices: {}".format(', '.join(option['choices'])) if option['choices'] else "",
+ ))
+print("</tbody></table>")