42 lines
1.2 KiB
Bash
Executable File
42 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
VENV_PYTHON="${PROJECT_DIR}/.venv/bin/python"
|
|
CONFIG_TEMPLATE="${PROJECT_DIR}/config/config.example.yaml"
|
|
CONFIG_PATH="${PROJECT_DIR}/config/local.yaml"
|
|
RTSP_URL="${RTSP_URL:-rtsp://user:password@camera-ip:554/h264/ch1/main/av_stream}"
|
|
OUTPUT_DIR="${OUTPUT_DIR:-${PROJECT_DIR}/outputs}"
|
|
PREPARE_ONLY=0
|
|
|
|
if [[ "${1:-}" == "--prepare-only" ]]; then
|
|
PREPARE_ONLY=1
|
|
shift
|
|
fi
|
|
|
|
if [[ ! -x "${VENV_PYTHON}" ]]; then
|
|
echo "Virtual environment is missing. Run scripts/install.sh first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "${RTSP_URL}" == "rtsp://user:password@camera-ip:554/h264/ch1/main/av_stream" ]]; then
|
|
echo "Please edit scripts/run.sh and set RTSP_URL before starting." >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "${OUTPUT_DIR}" "${PROJECT_DIR}/config"
|
|
|
|
cp "${CONFIG_TEMPLATE}" "${CONFIG_PATH}"
|
|
sed -i.bak \
|
|
-e "s|^ rtsp_url: .*| rtsp_url: \"${RTSP_URL}\"|" \
|
|
-e "s|^ output_dir: .*| output_dir: \"${OUTPUT_DIR}\"|" \
|
|
"${CONFIG_PATH}"
|
|
rm -f "${CONFIG_PATH}.bak"
|
|
|
|
if [[ "${PREPARE_ONLY}" -eq 1 ]]; then
|
|
echo "Prepared config at ${CONFIG_PATH}"
|
|
exit 0
|
|
fi
|
|
|
|
exec "${VENV_PYTHON}" "${PROJECT_DIR}/main.py" --config "${CONFIG_PATH}" rtsp "$@"
|