#!/bin/bash # exit on errors set -e # import our ENV variables # catch exits and give a friendly error message function showerr { echo "Failed to load configuration! You may need to update your .env and quote values with special characters in them." } trap showerr EXIT source .env trap - EXIT # show commands as they're executed set -x function runweb { docker-compose run --rm web "$@" } function execdb { docker-compose exec db $@ } function execweb { docker-compose exec web "$@" } function initdb { execweb python manage.py migrate execweb python manage.py initdb } CMD=$1 if [ -n "$CMD" ]; then shift fi # show commands as they're executed set -x case "$CMD" in up) docker-compose up --build "$@" ;; run) docker-compose run --rm --service-ports web ;; initdb) initdb ;; <<<<<<< HEAD ======= resetdb) clean # Start just the DB so no one else is using it docker-compose up --build -d db execdb dropdb -U ${POSTGRES_USER} ${POSTGRES_DB} execdb createdb -U ${POSTGRES_USER} ${POSTGRES_DB} # Now start up web so we can run the migrations docker-compose up --build -d web initdb clean ;; makemigrations) runweb python manage.py makemigrations "$@" ;; >>>>>>> main migrate) runweb python manage.py migrate "$@" ;; bash) runweb bash ;; shell) runweb python manage.py shell ;; dbshell) execdb psql -U ${POSTGRES_USER} ${POSTGRES_DB} ;; restart_celery) docker-compose restart celery_worker ;; collectstatic) runweb python manage.py collectstatic --no-input ;; build) docker-compose build ;; update) git pull docker-compose build --no-cache docker-compose exec web python manage.py migrate docker-compose exec web python manage.py collectstatic --no-input docker-compose restart ;; populate_streams) runweb python manage.py populate_streams ;; generate_preview_images) runweb python manage.py generate_preview_images $@ ;; runweb) runweb "$@" ;; rundb) rundb "$@" ;; *) set +x # No need to echo echo echo "Unrecognised command. Try: build, up, initdb, migrate, bash, shell, dbshell, restart_celery, update, populate_streams, generate_preview_images" ;; esac