Source code for nefelibata.cli.preview

# -*- coding: utf-8 -*-
import logging
import os
import socketserver
from http.server import SimpleHTTPRequestHandler
from pathlib import Path

__author__ = "Beto Dealmeida"
__copyright__ = "Beto Dealmeida"
__license__ = "mit"

_logger = logging.getLogger(__name__)


[docs]def run(root: Path, port: int = 8000) -> None: """Run a local HTTP server.""" _logger.info("Previewing weblog") build = root / "build" os.chdir(build) with socketserver.TCPServer(("", port), SimpleHTTPRequestHandler) as httpd: _logger.info(f"Running HTTP server on port {port}") try: httpd.serve_forever() except KeyboardInterrupt: _logger.info("Exiting") httpd.shutdown()