28 lines
		
	
	
		
			871 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			871 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Serve QMK documentation locally
 | |
| """
 | |
| import http.server
 | |
| 
 | |
| from milc import cli
 | |
| 
 | |
| 
 | |
| class DocsHandler(http.server.SimpleHTTPRequestHandler):
 | |
|     def __init__(self, *args, **kwargs):
 | |
|         super().__init__(*args, directory='docs', **kwargs)
 | |
| 
 | |
| 
 | |
| @cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.')
 | |
| @cli.subcommand('Run a local webserver for QMK documentation.')
 | |
| def docs(cli):
 | |
|     """Spin up a local HTTPServer instance for the QMK docs.
 | |
|     """
 | |
|     with http.server.HTTPServer(('', cli.config.docs.port), DocsHandler) as httpd:
 | |
|         cli.log.info("Serving QMK docs at http://localhost:%d/", cli.config.docs.port)
 | |
|         cli.log.info("Press Control+C to exit.")
 | |
| 
 | |
|         try:
 | |
|             httpd.serve_forever()
 | |
|         except KeyboardInterrupt:
 | |
|             cli.log.info("Stopping HTTP server...")
 | |
|         finally:
 | |
|             httpd.shutdown()
 |