#!/bin/bash # import our ENV variables source .env set -e set -x function clean { docker-compose stop docker-compose rm -f } function runweb { docker-compose run --rm web "$@" clean } function execdb { docker-compose exec db $@ } function execweb { docker-compose exec web "$@" } function initdb { execweb python manage.py migrate execweb python manage.py initdb } case "$1" in up) docker-compose up --build ;; run) docker-compose run --rm --service-ports web ;; initdb) initdb ;; resetdb) clean docker-compose up --build -d execdb dropdb -U ${POSTGRES_USER} ${POSTGRES_DB} execdb createdb -U ${POSTGRES_USER} ${POSTGRES_DB} initdb clean ;; makemigrations) execweb python manage.py makemigrations ;; migrate) execweb python manage.py migrate ;; bash) execweb bash ;; shell) execweb python manage.py shell ;; dbshell) execdb psql -U ${POSTGRES_USER} ${POSTGRES_DB} ;; restart_celery) docker-compose restart celery_worker ;; test) shift 1 execweb coverage run --source='.' --omit="*/test*,celerywyrm*,bookwyrm/migrations/*" manage.py test "$@" ;; pytest) shift 1 execweb pytest "$@" ;; test_report) execweb coverage report ;; collectstatic) execweb python manage.py collectstatic --no-input ;; build) docker-compose build ;; clean) clean ;; *) echo "Unrecognised command. Try: build, clean, up, initdb, resetdb, makemigrations, migrate, bash, shell, dbshell, restart_celery, test, pytest, test_report" ;; esac