#!/usr/bin/env bash

# Current dir
TOPDIR=$(cd "$(dirname "$0")/.."; pwd)

source "$TOPDIR/bin/sparkling-env.sh"
# Java check
checkJava
# Verify there is Spark installation
checkSparkHome
# Verify if correct Spark version is used
checkSparkVersion
# Check sparkling water assembly Jar exists
checkFatJarExists

# Default memory for shell
DRIVER_MEMORY=3G
DRIVER_MEMORY=${DRIVER_MEMORY:-2G}

# Default MASTER
USER_MASTER=${MASTER:-$(getMasterArg "$@")}
USER_MASTER=${USER_MASTER:-"$DEFAULT_MASTER"}
export MASTER="$USER_MASTER"
if [ -f "$SPARK_HOME/conf/spark-defaults.conf" ]; then
    EXTRA_DRIVER_PROPS=$(grep "^spark.driver.extraJavaOptions" "$SPARK_HOME"/conf/spark-defaults.conf 2>/dev/null | sed -e 's/spark.driver.extraJavaOptions//' )
fi

banner

JARS="$FAT_JAR_FILE,$(getJarsArg "$@")"

ARGS="$@"

ARGS=$(removeArgWithParam "--jars" "$ARGS")
ARGS=$(removeArgWithParam "--master" "$ARGS")

# If extra java properties are defined use them and append our property
spark-shell --jars "$JARS" --driver-memory "$DRIVER_MEMORY" --conf spark.driver.extraJavaOptions="$EXTRA_DRIVER_PROPS $EXTRA_JVM_ARGS" $ARGS

