#!/bin/bash

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. $SCRIPT_DIR/common.sh "$@"


echo "-- INSTALLING ELASTICSEARCH ----------------------------------------------------"

export ES_VERSION=6.0.0-beta2

saved_dir=`pwd`
function returned_to_saved_dir() {
     cd $saved_dir
}
trap returned_to_saved_dir 15
trap returned_to_saved_dir EXIT

echo " - Changing to temp directory"
mkdir -p /tmp/es_setup
cd /tmp/es_setup

echo " - Downloading elasticsearch-$ES_VERSION"
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$ES_VERSION.tar.gz > /tmp/es_install_log 2>&1
if [[ $? != 0 ]]; then
    echo " -> Failed to downolad elasticsearch-$ES_VERSION from https://artifacts.elastic.co/downloads/. Trying to download from niceideas.ch"
    exit -1
    #wget http://niceideas.ch/mes/elasticsearch-$ES_VERSION.tar.gz >> /tmp/es_install_log 2>&1
    #fail_if_error $? "/tmp/es_install_log" -1
fi

echo " - Extracting elasticsearch-$ES_VERSION"
tar -xvf elasticsearch-$ES_VERSION.tar.gz > /tmp/es_install_log 2>&1
fail_if_error $? "/tmp/es_install_log" -2

echo " - Installing ElasticSearch"
sudo chown root.staff -R elasticsearch-$ES_VERSION
sudo mv elasticsearch-$ES_VERSION /usr/local/lib
sudo mkdir -p /usr/local/lib/elasticsearch-$ES_VERSION/data
sudo chmod -R 777 /usr/local/lib/elasticsearch-$ES_VERSION/data
sudo mkdir -p /usr/local/lib/elasticsearch-$ES_VERSION/logs
sudo chmod -R 777 /usr/local/lib/elasticsearch-$ES_VERSION/logs
sudo chmod -R 777 /usr/local/lib/elasticsearch-$ES_VERSION/config/

echo " - symlinking /usr/local/lib/elasticsearch/ to /usr/local/lib/elasticsearch-$ES_VERSION/"
sudo ln -s /usr/local/lib/elasticsearch-$ES_VERSION /usr/local/lib/elasticsearch

echo " - Registering test cleaning traps"
export ES_PROC_ID=-1
function check_stop_es(){
    if [[ $ES_PROC_ID != -1 ]]; then
        echo " - Stopping ES !!"
        kill -15 $ES_PROC_ID
    fi
}
trap check_stop_es 15
trap check_stop_es EXIT


echo " - Starting ElasticSearch"
export ES_JAVA_OPTS="-Dlog4j2.disable.jmx=true -Xmx1g -Xms800m"
/usr/local/lib/elasticsearch-$ES_VERSION/bin/elasticsearch > /tmp/es_run_log 2>&1 &
export ES_PROC_ID=$!

echo " - Checking Elasticsearch startup"
sleep 10
if [[ `ps -e | grep $ES_PROC_ID` == "" ]]; then
    echo " !! Failed to start Elasticsearch !!"
    exit -8
fi

echo " - Stopping Elasticsearch"
kill -15 $ES_PROC_ID
export ES_PROC_ID=-1

sudo rm -Rf /tmp/es_setup
returned_to_saved_dir


