#!/bin/bash if [ -z "$CI" ]; then # kill all subprocess on exit trap "exit" INT TERM ERR trap "kill 0" EXIT else echo "CI is set to $CI"; fi # script should fail when any process returns non zero code set -ev # handle arguments SKIP_SETUP=false START_BACKGROUND=false for i in "$@" do case $i in --start-background) START_BACKGROUND=true shift # past argument ;; --skip-setup) SKIP_SETUP=true shift # past argument with no value ;; *) # unknown option ;; esac done echo "SKIP_SETUP = ${SKIP_SETUP}" POSTGRES_DB=${POSTGRES_DB:-vbv_lernwelt} DJANGO_PORT=${DJANGO_PORT:-8000} mypsql() { psql -h "${POSTGRES_HOST:-localhost}" -p "${POSTGRES_PORT:-5432}" -U "${POSTGRES_USER:-postgres}" "$@" } if [ "$SKIP_SETUP" = false ]; then echo "Drop all connections to $POSTGRES_DB" mypsql -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$POSTGRES_DB' AND pid <> pg_backend_pid();" > /dev/null 2>&1 echo "Drop database: $POSTGRES_DB" mypsql -c "drop database if exists $POSTGRES_DB;" echo "Create database: $POSTGRES_DB" mypsql -c "create database $POSTGRES_DB;" echo "initialize database for django" python3 server/manage.py createcachetable --settings="$DJANGO_SETTINGS_MODULE" python3 server/manage.py migrate --settings="$DJANGO_SETTINGS_MODULE" python3 server/manage.py create_default_users --settings="$DJANGO_SETTINGS_MODULE" python3 server/manage.py create_default_learningpath --settings="$DJANGO_SETTINGS_MODULE" # make django translations (cd server && python3 manage.py compilemessages --settings="$DJANGO_SETTINGS_MODULE") else echo "else" # python3 src/manage.py recreate_customer_data_for_integration_tests --settings="$DJANGO_SETTINGS_MODULE" fi if [ "$START_BACKGROUND" = true ]; then python3 server/manage.py runserver "${DJANGO_PORT}" --settings="$DJANGO_SETTINGS_MODULE" > /dev/null & else python3 server/manage.py runserver "${DJANGO_PORT}" --settings="$DJANGO_SETTINGS_MODULE" fi