Browse Source

Added missing dependency test and warning on app startup

maziggy 4 months ago
parent
commit
afe7ddeb72
1 changed files with 13 additions and 5 deletions
  1. 13 5
      backend/app/main.py

+ 13 - 5
backend/app/main.py

@@ -11,6 +11,8 @@ from logging.handlers import RotatingFileHandler
 def _start_error_server(missing_packages: list):
 def _start_error_server(missing_packages: list):
     """Start a minimal HTTP server to display dependency errors in browser."""
     """Start a minimal HTTP server to display dependency errors in browser."""
     import os
     import os
+    import signal
+    import threading
     from http.server import BaseHTTPRequestHandler, HTTPServer
     from http.server import BaseHTTPRequestHandler, HTTPServer
 
 
     packages_html = "".join(f"<li><code>{p}</code></li>" for p in missing_packages)
     packages_html = "".join(f"<li><code>{p}</code></li>" for p in missing_packages)
@@ -75,11 +77,17 @@ def _start_error_server(missing_packages: list):
     print(f"\nStarting error server on http://0.0.0.0:{port}")
     print(f"\nStarting error server on http://0.0.0.0:{port}")
     print("Visit this URL in your browser to see the error details.\n")
     print("Visit this URL in your browser to see the error details.\n")
 
 
-    try:
-        server = HTTPServer(("0.0.0.0", port), ErrorHandler)
-        server.serve_forever()
-    except KeyboardInterrupt:
-        pass
+    server = HTTPServer(("0.0.0.0", port), ErrorHandler)
+
+    def shutdown(signum, frame):
+        print("\nShutting down error server...")
+        threading.Thread(target=server.shutdown).start()
+
+    signal.signal(signal.SIGTERM, shutdown)
+    signal.signal(signal.SIGINT, shutdown)
+
+    server.serve_forever()
+    raise SystemExit(1)
 
 
 
 
 def check_dependencies():
 def check_dependencies():