#!/bin/bash

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


echo "-- INSTALLING SPARK -----------------------------------------------------------"

export SPARK_VERSION=2.2.0

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/spark_setup
cd /tmp/spark_setup

echo " - Downloading spark-$SPARK_VERSION"
wget https://d3kbcqa49mib13.cloudfront.net/spark-$SPARK_VERSION-bin-hadoop2.7.tgz > /tmp/spark_install_log 2>&1
if [[ $? != 0 ]]; then
    echo " -> Failed to downolad spark-$SPARK_VERSION from http://www.apache.org/. Trying to download from niceideas.ch"
    wget http://niceideas.ch/mes/spark-$SPARK_VERSION-bin-hadoop2.7.tgz >> /tmp/spark_install_log 2>&1
    fail_if_error $? "/tmp/spark_install_log" -1
fi

echo " - Extracting spark-$SPARK_VERSION"
tar -xvf spark-$SPARK_VERSION-bin-hadoop2.7.tgz > /tmp/spark_install_log 2>&1
fail_if_error $? "/tmp/spark_install_log" -2

echo " - Installing spark"
sudo chown root.staff -R spark-$SPARK_VERSION-bin-hadoop2.7
sudo mv spark-$SPARK_VERSION-bin-hadoop2.7 /usr/local/lib/spark-$SPARK_VERSION

echo " - symlinking /usr/local/lib/spark/ to /usr/local/lib/spark-$SPARK_VERSION"
sudo ln -s /usr/local/lib/spark-$SPARK_VERSION /usr/local/lib/spark

echo " - Checking Spark Installation"
/usr/local/lib/spark-$SPARK_VERSION/bin/run-example SparkPi 10 > /tmp/sparkpi_run_log 2>&1 &
fail_if_error $? "/tmp/sparkpi_run_log" -3


sudo rm -Rf /tmp/spark_setup
returned_to_saved_dir
