mirror of https://github.com/pyodide/pyodide.git
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
|
import os
|
||
|
import sys
|
||
|
import argparse
|
||
|
import http.server
|
||
|
import socketserver
|
||
|
import pathlib
|
||
|
|
||
|
TEST_PATH = pathlib.Path(__file__).parents[0].resolve()
|
||
|
BUILD_PATH = TEST_PATH / '..' / 'build'
|
||
|
|
||
|
class Handler(http.server.SimpleHTTPRequestHandler):
|
||
|
def end_headers(self):
|
||
|
self.send_header('Access-Control-Allow-Origin', '*')
|
||
|
super().end_headers()
|
||
|
|
||
|
Handler.extensions_map['.wasm'] = 'application/wasm'
|
||
|
|
||
|
def make_parser(parser):
|
||
|
parser.description = ('Start a server with the supplied build_dir and port.')
|
||
|
parser.add_argument('--build_dir', action='store', type=str, default=BUILD_PATH, help='set the build directory')
|
||
|
parser.add_argument('--port', action='store', type=int, default=8000, help='set the PORT number')
|
||
|
return parser
|
||
|
|
||
|
def server(port):
|
||
|
httpd = socketserver.TCPServer(('', port), Handler)
|
||
|
return httpd
|
||
|
|
||
|
def main(args):
|
||
|
build_dir = args.build_dir
|
||
|
port = args.port
|
||
|
httpd = server(port)
|
||
|
try:
|
||
|
os.chdir(build_dir)
|
||
|
print("serving from {0} at localhost:".format(build_dir) + str(port))
|
||
|
httpd.serve_forever()
|
||
|
except KeyboardInterrupt:
|
||
|
print("\n...shutting down http server")
|
||
|
httpd.shutdown()
|
||
|
sys.exit()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
parser = make_parser(argparse.ArgumentParser())
|
||
|
args = parser.parse_args()
|
||
|
main(args)
|