diff options
author | Christian Heimes <christian@python.org> | 2022-04-05 09:21:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-05 09:21:11 (GMT) |
commit | 96e09837fb8031aebe8d823dd19ef664a34bcfad (patch) | |
tree | 28f6efee3352292d27370a2aeea27090755bed6f /Tools/wasm/wasm_webserver.py | |
parent | faa12088c179dd896fde713448a7f142f820c1aa (diff) | |
download | cpython-96e09837fb8031aebe8d823dd19ef664a34bcfad.zip cpython-96e09837fb8031aebe8d823dd19ef664a34bcfad.tar.gz cpython-96e09837fb8031aebe8d823dd19ef664a34bcfad.tar.bz2 |
bpo-40280: Add limited Emscripten REPL (GH-32284)
Co-authored-by: Katie Bell <katie@katharos.id.au>
Diffstat (limited to 'Tools/wasm/wasm_webserver.py')
-rwxr-xr-x | Tools/wasm/wasm_webserver.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Tools/wasm/wasm_webserver.py b/Tools/wasm/wasm_webserver.py new file mode 100755 index 0000000..ef642bf --- /dev/null +++ b/Tools/wasm/wasm_webserver.py @@ -0,0 +1,39 @@ +#!/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): + self.send_my_headers() + super().end_headers() + + def send_my_headers(self): + self.send_header("Cross-Origin-Opener-Policy", "same-origin") + self.send_header("Cross-Origin-Embedder-Policy", "require-corp") + + +def main(): + args = parser.parse_args() + if not args.bind: + args.bind = None + + server.test( + HandlerClass=MyHTTPRequestHandler, + protocol="HTTP/1.1", + port=args.port, + bind=args.bind, + ) + +if __name__ == "__main__": + main() |