38 lines
987 B
Bash
38 lines
987 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
PORT="${PORT:-8000}"
|
|
APP_URL="http://localhost:${PORT}/index.html"
|
|
LOG_FILE="${TMPDIR:-/tmp}/ai-night-vision-http-server.log"
|
|
|
|
cleanup() {
|
|
if [[ -n "${SERVER_PID:-}" ]] && kill -0 "${SERVER_PID}" 2>/dev/null; then
|
|
kill "${SERVER_PID}" 2>/dev/null || true
|
|
wait "${SERVER_PID}" 2>/dev/null || true
|
|
fi
|
|
}
|
|
trap cleanup EXIT INT TERM
|
|
|
|
python3 -m http.server "${PORT}" >"${LOG_FILE}" 2>&1 &
|
|
SERVER_PID=$!
|
|
|
|
sleep 1
|
|
if ! kill -0 "${SERVER_PID}" 2>/dev/null; then
|
|
echo "Failed to start Python HTTP server on port ${PORT}."
|
|
echo "Check log: ${LOG_FILE}"
|
|
exit 1
|
|
fi
|
|
|
|
if command -v xdg-open >/dev/null 2>&1; then
|
|
xdg-open "${APP_URL}" >/dev/null 2>&1 || true
|
|
elif command -v open >/dev/null 2>&1; then
|
|
open "${APP_URL}" >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
echo "AI Night Vision Camera is running."
|
|
echo "Open: ${APP_URL}"
|
|
echo "Server log: ${LOG_FILE}"
|
|
echo "Keep this window open. Press Ctrl+C to stop."
|
|
wait "${SERVER_PID}"
|