#!/bin/bash

set -e

LOG_FILE=/var/log/smasch/install.log

if [ "$1" = "configure" ] && [ -z "$2" ]; then
    id -u smasch &>/dev/null || useradd smasch
    if ! getent group smasch >/dev/null; then
        addgroup --quiet --system smasch
    fi

    ln -sf /etc/smasch/smasch.py /usr/lib/smasch/smash/local_settings.py

    virtualenv --python=python3 /usr/lib/smasch/env

    chown smasch:smasch /etc/smasch/smasch.py
    chmod 0600 /etc/smasch/smasch.py

    mkdir -p /run/smasch/
    chown -R smasch:smasch /run/smasch/

    mkdir -p /var/log/smasch

fi

echo "Installing python dependencies"
{
  source /usr/lib/smasch/env/bin/activate && pip install -r --use-deprecated=legacy-resolver /usr/lib/smasch/requirements.txt --log $LOG_FILE
  source /usr/lib/smasch/env/bin/activate && pip install -r --use-deprecated=legacy-resolver /usr/lib/smasch/requirements-dev.txt  --log $LOG_FILE
} || {
  echo "There was an issue when installing python dependencies." >> $LOG_FILE
  echo "There was an issue when installing python dependencies. Reinstall of smasch could help (in case you are upgrading smasch the data should not be lost in the process): "
  echo "apt-get remove smasch"
  echo "apt-get install smasch"
  exit 1
}

echo "Collecting static files"
source /usr/lib/smasch/env/bin/activate && /usr/lib/smasch/manage.py collectstatic --no-input >> $LOG_FILE 2>&1

echo "Applying database changes"
source /usr/lib/smasch/env/bin/activate && /usr/lib/smasch/manage.py migrate --no-input >> $LOG_FILE 2>&1

chown -R smasch:smasch /usr/lib/smasch

chown -R smasch:smasch /var/log/smasch

if [ -d /run/systemd/system ]; then
  systemctl --system daemon-reload >/dev/null || true
fi

if [ "$1" = "configure" ] && [ -z "$2" ]; then
    crontab -u smasch -l 2>/dev/null | grep -v "runcrons" | { cat; echo "*/5 * * * * . /usr/lib/smasch/env/bin/activate && python /usr/lib/smasch/manage.py runcrons >> /var/log/smasch/cronjob.log 2>&1"; } | crontab -u smasch -
fi

#DEBHELPER#