#!/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