"""Entry point for the USB camera web UI server. Usage:: uv run python -m camera.app # run directly uv run python -m camera.app --host 0.0.0.0 --port 8080 """ import argparse import signal import sys from camera.mjpeg import run def main(): parser = argparse.ArgumentParser(description="USB Camera Web UI Server") parser.add_argument("--host", default="0.0.0.0", help="Bind address (default: 0.0.0.0)") parser.add_argument("--port", type=int, default=8080, help="Port (default: 8080)") args = parser.parse_args() # Handle shutdown gracefully def _signal_handler(signum, frame): print(f"\nReceived signal {signum}, shutting down...") sys.exit(0) signal.signal(signal.SIGINT, _signal_handler) signal.signal(signal.SIGTERM, _signal_handler) print(f"Starting camera web UI on http://{args.host}:{args.port}") print("Press Ctrl+C to stop") run(host=args.host, port=args.port) if __name__ == "__main__": main()