#!/bin/bash

# Modeled closely after flask portion of entrypoint script

UWSGI_NUM_PROCESSES='1'
UWSGI_NUM_THREADS='15'
UWSGI_UID='uwsgi'
UWSGI_GID='uwsgi'
 UWSGI_LOGGING='--log-4xx --log-5xx --log-ioerror --log-x-forwarded-for --disable-logging'
# increase header buffer size if one is seeing 502s & 'invalid request block size' errors in uwsgi log
UWSGI_BUFFER_SIZE='12288'

cd /var/app

. /var/venv/bin/activate

 # Flask support
if cat requirements.txt | grep -q -i Flask && [ -z "${WSGI_MODULE}" ]; then
  UWSGI_MODULE='--module application:app'
fi

# defaulting to application.py if not explicitly set
[ -z "${WSGI_PATH}" ] && WSGI_PATH=application.py

DDTRACE_BINARY=$(whereis ddtrace-run | cut -d ' ' -f 2)

if [ -x ${DDTRACE_BINARY} ]; then
  ${DDTRACE_BINARY} uwsgi ${UWSGI_LOGGING} --cache2 name=uwsgi_cache,items=10 --lazy-apps --import=ddtrace.bootstrap.sitecustomize --http :8080 --chdir /var/app --wsgi-file ${WSGI_PATH} ${UWSGI_MODULE} --master --http-keepalive --processes ${UWSGI_NUM_PROCESSES} --threads ${UWSGI_NUM_THREADS} --uid ${UWSGI_UID} --gid ${UWSGI_GID} --buffer-size ${UWSGI_BUFFER_SIZE}
else
  uwsgi ${UWSGI_LOGGING} --cache2 name=uwsgi_cache,items=10 --lazy-apps --import=ddtrace.bootstrap.sitecustomize --http :8080 --chdir /var/app --wsgi-file ${WSGI_PATH} ${UWSGI_MODULE} --master --http-keepalive --processes ${UWSGI_NUM_PROCESSES} --threads ${UWSGI_NUM_THREADS} --uid ${UWSGI_UID} --gid ${UWSGI_GID} --buffer-size ${UWSGI_BUFFER_SIZE}
fi
