#!/usr/bin/env bash

CORES=$(grep -c '^processor' /proc/cpuinfo)
WORKERS=$(expr 2 \* ${CORES} + 1)

# If we're unable to determine workers, just set a default
WORKERS=${WORKERS:-3}

ASGI_PORT=${SOVEREIGN_PORT:-8080}
ASGI_BIND=${SOVEREIGN_HOST:-0.0.0.0}
ASGI_KEEPALIVE=${SOVEREIGN_KEEPALIVE:-5}
ASGI_APPLICATION_PATH=${SOVEREIGN_APPLICATION_PATH:-sovereign.app:app}

uvicorn \
    --host ${ASGI_BIND} \
    --port ${ASGI_PORT} \
    --workers ${WORKERS} \
    --timeout-keep-alive ${ASGI_KEEPALIVE} \
    --no-access-log \
    ${ASGI_APPLICATION_PATH}
