diff options
Diffstat (limited to 'lib/python')
-rw-r--r-- | lib/python/qmk/cli/__init__.py | 1 | ||||
-rw-r--r-- | lib/python/qmk/cli/docs.py | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index e982a75fc..e41cc3dcb 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py | |||
@@ -5,6 +5,7 @@ We list each subcommand here explicitly because all the reliable ways of searchi | |||
5 | from . import cformat | 5 | from . import cformat |
6 | from . import compile | 6 | from . import compile |
7 | from . import config | 7 | from . import config |
8 | from . import docs | ||
8 | from . import doctor | 9 | from . import doctor |
9 | from . import hello | 10 | from . import hello |
10 | from . import json | 11 | from . import json |
diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py new file mode 100644 index 000000000..a0888ec38 --- /dev/null +++ b/lib/python/qmk/cli/docs.py | |||
@@ -0,0 +1,22 @@ | |||
1 | """Serve QMK documentation locally | ||
2 | """ | ||
3 | import http.server | ||
4 | |||
5 | from milc import cli | ||
6 | |||
7 | |||
8 | class DocsHandler(http.server.SimpleHTTPRequestHandler): | ||
9 | def __init__(self, *args, **kwargs): | ||
10 | super().__init__(*args, directory='docs', **kwargs) | ||
11 | |||
12 | |||
13 | @cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.') | ||
14 | @cli.subcommand('Run a local webserver for QMK documentation.') | ||
15 | def docs(cli): | ||
16 | """Spin up a local HTTPServer instance for the QMK docs. | ||
17 | """ | ||
18 | with http.server.HTTPServer(('', cli.config.docs.port), DocsHandler) as httpd: | ||
19 | cli.log.info("Serving QMK docs at http://localhost:%d/", cli.config.docs.port) | ||
20 | cli.log.info("Press Control+C to exit.") | ||
21 | |||
22 | httpd.serve_forever() | ||