#!/bin/bash set -e a2ensite mysite systemctl reload apache2 # check addition to settings if ! grep "### MDJANGO ###" /opt/mysite/mysite/settings.py >/dev/null then echo "add mdjango settings to settings.py" cat << EOF >> /opt/mysite/mysite/settings.py ### MDJANGO ### DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mdjango', 'USER': 'mdjango', 'PASSWORD': 'MdjangO', 'HOST': 'localhost', 'PORT': '5432', }, } STATIC_ROOT = '/var/mysite/static' DEBUG = False ### MDJANGO-END ### EOF fi # check existence of /var/mysite if [ ! -d /var/mysite ] then mkdir -p /var/mysite chmod 777 /var/mysite fi # collect statics /opt/mysite/manage.py collectstatic --noinput # check postgres user if ! su postgres -c "psql -c '\du'" | grep mdjango >/dev/null then echo "No user named 'mdjango' found. It is now created." su postgres -c "createuser -ds mdjango ; psql -c \"ALTER USER mdjango WITH PASSWORD 'MdjangO';\"" fi main=$(ls -d /etc/postgresql/*/main/) if ! grep mdjango $main/pg_hba.conf >/dev/null then echo "adding mdjango user access to $main/pg_hba.conf" awk 'BEGIN { found=0; } /# "local/ { if (found == 0) { print; print "local all mdjango md5"; found=1; next; }} /^local.*all.*all/ { if (found == 0) { print "local all mdjango md5"; print; found=1; next; }} /^host/ { if (found == 0) { print "local all mdjango md5"; print; found=1; next; }} {print;} ' $main/pg_hba.conf > /tmp/pg_hba.conf mv /tmp/pg_hba.conf $main/pg_hba.conf chown postgres:postgres $main/pg_hba.conf systemctl reload postgresql fi # check mdjango database if ! su postgres -c "psql -c '\l'" | grep mdjango >/dev/null then echo "Create database mdjango." su postgres -c "createdb mdjango -O mdjango" fi # migrate default db /opt/mysite/manage.py migrate # check existence of superuser #if [ $(sqlite3 /var/mysite/default.sqlite3 'SELECT id FROM auth_user WHERE is_staff=1;' |wc -l) -eq 0 ] if [ $(su postgres -c "psql mdjango -c 'SELECT id FROM auth_user WHERE is_staff=1;' " |wc -l) -eq 0 ] then echo "There is no django superuser in the system. Install one? (Y/n)" read a if [ "$a" != "n" ] then /opt/mysite/manage.py createsuperuser fi fi