[Web] Fix browser opening too early with serve.py

This commit is contained in:
Fabio Alessandrelli 2024-04-07 17:57:33 +02:00
parent 0e9caa2d9c
commit 470a35832f
1 changed files with 16 additions and 4 deletions

View File

@ -6,7 +6,7 @@ import os
import socket import socket
import subprocess import subprocess
import sys import sys
from http.server import HTTPServer, SimpleHTTPRequestHandler, test # type: ignore from http.server import HTTPServer, SimpleHTTPRequestHandler
from pathlib import Path from pathlib import Path
@ -38,12 +38,24 @@ def shell_open(url):
def serve(root, port, run_browser): def serve(root, port, run_browser):
os.chdir(root) os.chdir(root)
address = ("", port)
httpd = DualStackServer(address, CORSRequestHandler)
url = f"http://127.0.0.1:{port}"
if run_browser: if run_browser:
# Open the served page in the user's default 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).") print(f"Opening the served URL in the default browser (use `--no-browser` or `-n` to disable this): {url}")
shell_open(f"http://127.0.0.1:{port}") 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__": if __name__ == "__main__":