1 #!/usr/bin/env python
2 import argparse
3 from http import server
4
5 parser = argparse.ArgumentParser(
6 description="Start a local webserver with a Python terminal."
7 )
8 parser.add_argument(
9 "--port", type=int, default=8000, help="port for the http server to listen on"
10 )
11 parser.add_argument(
12 "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)"
13 )
14
15
16 class ESC[4;38;5;81mMyHTTPRequestHandler(ESC[4;38;5;149mserverESC[4;38;5;149m.ESC[4;38;5;149mSimpleHTTPRequestHandler):
17 extensions_map = server.SimpleHTTPRequestHandler.extensions_map.copy()
18 extensions_map.update(
19 {
20 ".wasm": "application/wasm",
21 }
22 )
23
24 def end_headers(self):
25 self.send_my_headers()
26 super().end_headers()
27
28 def send_my_headers(self):
29 self.send_header("Cross-Origin-Opener-Policy", "same-origin")
30 self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
31
32
33 def main():
34 args = parser.parse_args()
35 if not args.bind:
36 args.bind = None
37
38 server.test(
39 HandlerClass=MyHTTPRequestHandler,
40 protocol="HTTP/1.1",
41 port=args.port,
42 bind=args.bind,
43 )
44
45 if __name__ == "__main__":
46 main()