djbrown/hbscorez

View on GitHub
entrypoint.sh

Summary

Maintainability
Test Coverage
#!/bin/bash

mkdir -p logs
touch ./logs/gunicorn.log
touch ./logs/gunicorn-access.log
tail -n 0 -f ./logs/gunicorn*.log &

SETTINGS_FILE="/settings.py"
if [ -f "$SETTINGS_FILE" ]
then
    echo "using runtime settings from $SETTINGS_FILE."
    ln -s $SETTINGS_FILE ./src/hbscorez/settings_runtime.py
    export DJANGO_SETTINGS_MODULE=hbscorez.settings_runtime
fi

export PYTHONUNBUFFERED=1
pipenv run ./src/manage.py migrate || { echo "could not apply migrations. stopping startup.. "; exit 5; }
pipenv run ./src/manage.py correct_data || { echo "could not correct_data. stopping startup.. "; exit 6; }

if [[ -z "${GUNICORN_WORKERS}" ]]; then
    echo "no gunicorn workers specified -> running with dev server"
    exec pipenv run ./src/manage.py runserver 0.0.0.0:8000 "$@"
else
    pipenv run ./src/manage.py collectstatic --noinput
    exec pipenv run gunicorn hbscorez.wsgi:application \
        --chdir src \
        --name hbscorez_django \
        --bind 0.0.0.0:8000 \
        --workers "$GUNICORN_WORKERS" \
        --log-level=info \
        --log-file=../logs/gunicorn.log \
        --access-logfile=../logs/gunicorn-access.log \
        "$@"
fi