diff options
Diffstat (limited to 'Tools/wasm/emscripten/web_example/server.py')
-rwxr-xr-x | Tools/wasm/emscripten/web_example/server.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Tools/wasm/emscripten/web_example/server.py b/Tools/wasm/emscripten/web_example/server.py new file mode 100755 index 00000000000..768e6f84e07 --- /dev/null +++ b/Tools/wasm/emscripten/web_example/server.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +import argparse +from http import server + +parser = argparse.ArgumentParser( + description="Start a local webserver with a Python terminal." +) +parser.add_argument( + "--port", type=int, default=8000, help="port for the http server to listen on" +) +parser.add_argument( + "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)" +) + + +class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler): + def end_headers(self) -> None: + self.send_my_headers() + super().end_headers() + + def send_my_headers(self) -> None: + self.send_header("Cross-Origin-Opener-Policy", "same-origin") + self.send_header("Cross-Origin-Embedder-Policy", "require-corp") + + +def main() -> None: + args = parser.parse_args() + if not args.bind: + args.bind = None + + server.test( # type: ignore[attr-defined] + HandlerClass=MyHTTPRequestHandler, + protocol="HTTP/1.1", + port=args.port, + bind=args.bind, + ) + + +if __name__ == "__main__": + main() |