#!/command/with-contenv sh
cd /var/www/funding_call/backend/ || exit 1

if [ "${ENVIRONMENT}" = "debug" ]; then
  echo "**********************************************"
  echo "***  Web server in development DEBUG mode  ***"
  echo "**********************************************"
  python3 -Wd -Xfrozen_modules=off -m debugpy --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000
elif [ "${ENVIRONMENT}" = "debugwait" ]; then
  echo "***********************************************"
  echo "***  Web server in development DEBUG mode   ***"
  echo "***   Waiting for debugger connection...    ***"
  echo "***********************************************"
  python3 -Wd -Xfrozen_modules=off -m debugpy --wait-for-client --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000
elif [ "${ENVIRONMENT}" = "development" ]; then
  echo "****************************************"
  echo "***  Web server in development mode  ***"
  echo "****************************************"
  python3 -Wd manage.py runserver 0.0.0.0:8000
else
  echo "Running in production mode"

  # https://docs.gunicorn.org/en/latest/design.html#how-many-workers
  WORKERS=${GUNICORN_WORKERS_COUNT:-$(((2 * $(nproc)) + 1))}

  echo "Starting Gunicorn with ${WORKERS} workers"

  python3 -m gunicorn funding_call.wsgi \
    --bind "unix:///run/gunicorn.sock" \
    --log-level "${LOGLEVEL:-INFO}" \
    --worker-class gevent \
    --workers "${WORKERS}" \
    --timeout 60
fi
