40 lines
1.1 KiB
Bash
40 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Единая точка запуска Waitress для systemd, post_update и dev.
|
|
# Переменные: WESP_LISTEN (0.0.0.0:80), WESP_WAITRESS_THREADS (по умолчанию 20).
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
LISTEN="${WESP_LISTEN:-0.0.0.0:80}"
|
|
THREADS="${WESP_WAITRESS_THREADS:-20}"
|
|
if ! [[ "$THREADS" =~ ^[0-9]+$ ]] || [[ "$THREADS" -lt 4 ]]; then
|
|
THREADS=4
|
|
fi
|
|
|
|
wesp_waitress() {
|
|
local venv_dir py
|
|
venv_dir="${WESP_VENV:-/opt/wes}"
|
|
if [[ -x "${venv_dir}/bin/waitress-serve" ]]; then
|
|
echo "${venv_dir}/bin/waitress-serve"
|
|
return
|
|
fi
|
|
py="$(command -v python3 2>/dev/null || true)"
|
|
if [[ -n "$py" && -x "${py%/*}/waitress-serve" ]]; then
|
|
echo "${py%/*}/waitress-serve"
|
|
return
|
|
fi
|
|
if [[ -x "${ROOT}/../wes_mac/bin/waitress-serve" ]]; then
|
|
echo "${ROOT}/../wes_mac/bin/waitress-serve"
|
|
return
|
|
fi
|
|
if [[ -x "${ROOT}/.venv/bin/waitress-serve" ]]; then
|
|
echo "${ROOT}/.venv/bin/waitress-serve"
|
|
return
|
|
fi
|
|
command -v waitress-serve
|
|
}
|
|
|
|
WAITRESS="$(wesp_waitress)"
|
|
exec "$WAITRESS" --listen="$LISTEN" --threads="$THREADS" wsgi:app
|