From 470a35832f05a14f351f30ea28231698d0cba0f3 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Sun, 7 Apr 2024 17:57:33 +0200 Subject: [PATCH] [Web] Fix browser opening too early with serve.py --- platform/web/serve.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/platform/web/serve.py b/platform/web/serve.py index f0b0ec96227..4e1521449b0 100755 --- a/platform/web/serve.py +++ b/platform/web/serve.py @@ -6,7 +6,7 @@ import os import socket import subprocess import sys -from http.server import HTTPServer, SimpleHTTPRequestHandler, test # type: ignore +from http.server import HTTPServer, SimpleHTTPRequestHandler from pathlib import Path @@ -38,12 +38,24 @@ def shell_open(url): def serve(root, port, run_browser): os.chdir(root) + address = ("", port) + httpd = DualStackServer(address, CORSRequestHandler) + + url = f"http://127.0.0.1:{port}" if run_browser: # Open the served page in the user's default browser. - print("Opening the served URL in the default browser (use `--no-browser` or `-n` to disable this).") - shell_open(f"http://127.0.0.1:{port}") + print(f"Opening the served URL in the default browser (use `--no-browser` or `-n` to disable this): {url}") + shell_open(url) + else: + print(f"Serving at: {url}") - test(CORSRequestHandler, DualStackServer, port=port) + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\nKeyboard interrupt received, stopping server.") + finally: + # Clean-up server + httpd.server_close() if __name__ == "__main__":