#!/bin/bash

set -o errexit
set -o pipefail
set -o nounset

PID=/app/gunicorn.pid

GUNICORN_TIMEOUT=${GUNICORN_TIMEOUT:-30}
GUNICORN_GRACEFUL_TIMEOUT=${GUNICORN_GRACEFUL_TIMEOUT:-10}
GUNICORN_MAX_REQUESTS=${GUNICORN_MAX_REQUESTS:-0}
GUNICORN_MAX_REQUESTS_JITTER=${GUNICORN_MAX_REQUESTS_JITTER:-0}
GUNICORN_WORKERS=${GUNICORN_WORKERS:-1}


python /app/manage.py collectstatic --noinput
python /app/manage.py migrate --noinput

gunicorn config.asgi \
  --bind [::]:80 \
  --pid=$PID \
  --timeout=$GUNICORN_TIMEOUT \
  --graceful-timeout=$GUNICORN_GRACEFUL_TIMEOUT \
  --workers=$GUNICORN_WORKERS \
  --max-requests=$GUNICORN_MAX_REQUESTS \
  --max-requests-jitter=$GUNICORN_MAX_REQUESTS_JITTER \
  --access-logfile - \
  --error-logfile - \
  --log-level=info \
  --chdir=/app \
  --worker-class=uvicorn.workers.UvicornWorker

