#! /bin/sh
set -e

# Read variables
. /etc/diaspora/diaspora-common.conf
. ${diaspora_conf}

# Check if PostgreSQL database diaspora_production exist
if su diaspora -s /bin/sh -c "psql  diaspora_production -c ''"
then
    echo "You already have a PostgreSQL database named 'diaspora_production'..."
    export dbexist='true'
fi

# Backup the previous version
# Just keep the config and vendor/bundle
backup() {
    cp -r ${diaspora_home}/config ${diaspora_home}-config
    cp -r ${diaspora_home}/vendor/bundle ${diaspora_home}-vendor-bundle
    cp -r ${diaspora_home}/.bundle ${diaspora_home}.bundle
    mv ${diaspora_home} ${diaspora_home}-backup.`openssl rand -hex 4`
    mkdir ${diaspora_home}
    mkdir ${diaspora_home}/vendor
    mv ${diaspora_home}-config ${diaspora_home}/config
    mv ${diaspora_home}-vendor-bundle ${diaspora_home}/vendor/bundle
    mv ${diaspora_home}.bundle ${diaspora_home}/.bundle
    chown ${diaspora_user}: -R ${diaspora_home}
	
    # Fix bin symlink set by earlier versions
    if test -L ${diaspora_home}/bin
    then
        rm -rf ${diaspora_home}/bin
    fi
}
 
case "$1" in
    upgrade)
        if ! test -z $dbexist
        then
            # Show current version of package
            installed_diaspora_version=`echo $2|cut -d+ -f1`
            installed_diaspora_major_version=`echo ${installed_diaspora_version} |cut -d. -f1,2`
	    installed_diaspora_minor_version=`echo ${installed_diaspora_version} |cut -d. -f3,4`
	    diaspora_minor_version=`echo ${diaspora_version} |cut -d. -f3,4`
            if test $(echo "${installed_diaspora_major_version} < 0.5" |bc) -eq 1
            then
            	echo "Stopping diaspora..."
            	invoke-rc.d diaspora stop
                cd ${diaspora_home}
                . ${diaspora_conf}
                echo "Run bundle install..." 
                su diaspora -s /bin/sh -c 'bundle install'
                echo "Run sidekiq for 5 minutes..."
                echo "Current time is `date`..."
                su diaspora -s /bin/sh -c 'bundle exec sidekiq&'
                sleep 5m
                echo "Stop sidekiq..."
                su diaspora -s /bin/sh -c 'pkill -u diaspora -f sidekiq' || true
            	echo "Making a backup of ${diaspora_home}..."
            	backup || true
            elif test $(echo "${installed_diaspora_minor_version} < ${diaspora_minor_version}" |bc) -eq 1
	    then
            	echo "Stopping diaspora..."
            	invoke-rc.d diaspora stop
            	echo "Making a backup of ${diaspora_home}..."
            	backup || true
            fi
            
        fi
        ;;
    abort-upgrade|install)
        ;;
    *)
        echo "preinst called with unknown argument \`$1'" >&2
        exit 1
        ;;
esac

#DEBHELPER#

exit 0
