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

hypercorn \
    --bind=${ASGI_BIND}:${ASGI_PORT} \
    --workers=${WORKERS} \
    --keep-alive ${ASGI_KEEPALIVE} \
    ${ASGI_APPLICATION_PATH} 2>&1
