#!/usr/bin/env python3
"""Serves poc.html and the auto-generated Mojo JS bindings.

URLs:
    /poc.html                       -> ./poc.html
    /gen/<path>                     -> <CHROMIUM_OUT>/gen/<path>

Run from the directory containing poc.html.
"""
import http.server
import os
import socketserver
import sys

PORT = 8080
HERE = os.path.dirname(os.path.abspath(__file__))
GEN_ROOT = os.environ.get(
    "CHROMIUM_GEN", "/chromium/chromium/src/out/asan/gen"
)


class Handler(http.server.SimpleHTTPRequestHandler):
    def translate_path(self, path):
        p = path.split("?", 1)[0].split("#", 1)[0]
        if p.startswith("/gen/"):
            return os.path.join(GEN_ROOT, p[len("/gen/") :])
        return os.path.join(HERE, p.lstrip("/"))

    def end_headers(self):
        self.send_header("Cache-Control", "no-store")
        super().end_headers()


if __name__ == "__main__":
    if len(sys.argv) > 1:
        PORT = int(sys.argv[1])
    socketserver.TCPServer.allow_reuse_address = True
    with socketserver.TCPServer(("127.0.0.1", PORT), Handler) as httpd:
        print(f"serving on http://127.0.0.1:{PORT}/poc.html  (gen={GEN_ROOT})")
        httpd.serve_forever()
