#!/bin/bash -e

distro=$1
dist=$2
apacheuser=$3
apachegroup=$4
nagiosuser=$5
nagiosgroup=$6

pkgname="elasticsearch-1.7.6"

echo "Upgrading Elasticsearch..."

# Delete the old archive
rm -rf "$pkgname"

# Extract archive
tar -xzf "$pkgname.tar.gz"


# Make and install 
(
	service elasticsearch stop
    rm -rf /usr/local/nagioslogserver/elasticsearch/lib/*
    /bin/cp -rf /usr/local/nagioslogserver/elasticsearch/config/* $pkgname/config

    if [ "$distro" == "Debian" ] || [ "$distro" == "Ubuntu" ]; then
        cp mods/etc/init.d/elasticsearch.deb.init /etc/init.d/elasticsearch
    else
        cp mods/etc/init.d/elasticsearch.init /etc/init.d/elasticsearch
    fi

    if [ -d "/usr/lib/systemd" ] ; then
        cp -pr mods/etc/systemd/* /usr/lib/systemd
        cp -pr mods/etc/systemd/* /usr/lib/systemd/system
    fi

	cp -r $pkgname/* /usr/local/nagioslogserver/elasticsearch
    if [ ! -f /usr/local/nagioslogserver/elasticsearch/bin/elasticsearch.in.sh ]; then
        cp mods/elasticsearch/elasticsearch.in.sh /usr/local/nagioslogserver/elasticsearch/bin

        DATA_DIR='"/usr/local/nagioslogserver/elasticsearch/data"'
        # Determine existing ES dta directory
        if [ -f /etc/sysconfig/elasticsearch ]; then
            DATA_DIR=`grep DATA_DIR /etc/sysconfig/elasticsearch | sed "s/DATA_DIR=//"`
        elif [ -f /etc/default/elasticsearch ]; then
            DATA_DIR=`grep DATA_DIR /etc/default/elasticsearch | sed "s/DATA_DIR=//"`
        fi

        sed -i "s#^DATA_DIR=.*#DATA_DIR=$DATA_DIR#g" /usr/local/nagioslogserver/elasticsearch/bin/elasticsearch.in.sh
    fi

	chown -R $nagiosuser:$nagiosuser /usr/local/nagioslogserver/elasticsearch /var/log/elasticsearch /var/run/elasticsearch
    chgrp $apachegroup /usr/local/nagioslogserver/elasticsearch/config/elasticsearch.yml
    chmod 664 /usr/local/nagioslogserver/elasticsearch/config/elasticsearch.yml
	chmod +x /etc/init.d/elasticsearch /usr/local/nagioslogserver/elasticsearch/bin/elasticsearch

	if [ `command -v systemctl` ]; then
        systemctl daemon-reload
        systemctl enable elasticsearch
        systemctl restart elasticsearch
    fi
)


# Post-install modifications
./post-upgrade

# Do a simple sanity check to make sure some key files exist...
for f in /usr/local/nagioslogserver/elasticsearch/bin/elasticsearch /usr/local/nagioslogserver/elasticsearch/config/elasticsearch.yml ; do
	if [ ! -f "$f" ]; then
		echo "ERROR: Elasticsearch install appears to have failed - exiting.  Missing file = $f"
		exit 1
	fi
done

service elasticsearch start

# Things are okay
echo "Elasticsearch upgraded OK"

