diff options
Diffstat (limited to 'lib/python/qmk')
| -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() | ||
