17db96d56Sopenharmony_ci#!/usr/bin/env python 27db96d56Sopenharmony_ciimport argparse 37db96d56Sopenharmony_cifrom http import server 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciparser = argparse.ArgumentParser( 67db96d56Sopenharmony_ci description="Start a local webserver with a Python terminal." 77db96d56Sopenharmony_ci) 87db96d56Sopenharmony_ciparser.add_argument( 97db96d56Sopenharmony_ci "--port", type=int, default=8000, help="port for the http server to listen on" 107db96d56Sopenharmony_ci) 117db96d56Sopenharmony_ciparser.add_argument( 127db96d56Sopenharmony_ci "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)" 137db96d56Sopenharmony_ci) 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ciclass MyHTTPRequestHandler(server.SimpleHTTPRequestHandler): 177db96d56Sopenharmony_ci extensions_map = server.SimpleHTTPRequestHandler.extensions_map.copy() 187db96d56Sopenharmony_ci extensions_map.update( 197db96d56Sopenharmony_ci { 207db96d56Sopenharmony_ci ".wasm": "application/wasm", 217db96d56Sopenharmony_ci } 227db96d56Sopenharmony_ci ) 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci def end_headers(self): 257db96d56Sopenharmony_ci self.send_my_headers() 267db96d56Sopenharmony_ci super().end_headers() 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci def send_my_headers(self): 297db96d56Sopenharmony_ci self.send_header("Cross-Origin-Opener-Policy", "same-origin") 307db96d56Sopenharmony_ci self.send_header("Cross-Origin-Embedder-Policy", "require-corp") 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_cidef main(): 347db96d56Sopenharmony_ci args = parser.parse_args() 357db96d56Sopenharmony_ci if not args.bind: 367db96d56Sopenharmony_ci args.bind = None 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci server.test( 397db96d56Sopenharmony_ci HandlerClass=MyHTTPRequestHandler, 407db96d56Sopenharmony_ci protocol="HTTP/1.1", 417db96d56Sopenharmony_ci port=args.port, 427db96d56Sopenharmony_ci bind=args.bind, 437db96d56Sopenharmony_ci ) 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ciif __name__ == "__main__": 467db96d56Sopenharmony_ci main() 47