#! /bin/sh

TOP=$(dirname -- "$(readlink -f $0)")
source $TOP/setup_env.sh

usage() {
    echo "usage: start_control_server.sh -t <yaml.tar.gz> [-a <ip_addr>] [-d <defaults.xml>]"
    echo "    -t <yaml.tar.gz>  : tar file with yaml defintions"
    echo "    -a <ip_addr>     : target ip address (optional)"
    echo "    -d <defaults.xml> : path to XML defaults file (optional)"
    exit
}

ARGS=""
ADDR=""

while [[ $# -gt 1 ]]
do
key="$1"
case $key in
    -a)
    ARGS="$ARGS -a $2"
    ADDR="$2"
    shift # past argument
    ;;
    -t)
    TAR_FILE="$2"
    shift # past argument
    ;;
    -d)
    DEF_FILE="$2"
    shift # past argument
    ;;
    *)
            # unknown option
    ;;
esac
shift
done

if [ ! -f "$TAR_FILE" ]
then
    echo "Tar file not found!"
    usage
fi

if [ -n "$DEF_FILE" ] 
then 
    if [ ! -f "$DEF_FILE" ]
    then
        echo "XML Defaults file not found!"
        usage
    else
        ARGS="$ARGS -d $DEF_FILE"
    fi
fi

# Check kernel version on CPU
printf "Looking for CPU kernel type...     "
RT=$(/bin/uname -r | grep rt)
if [ -z $RT ]; then
  printf "non-RT kernel, using rhel6-x86_64\n"
  ARCH=rhel6-x86_64
else
  printf "RT kernel\n"

  # Check buildroot version
  printf "Looking for Buildroot version...   "
  BR2015=$(/bin/uname -r | grep 3.18.11)
  if [ $BR2015 ]; then
    printf "buildroot-2015.02-x86_64\n"
    ARCH=buildroot-2015.02-x86_64
  else
    BR2016=$(/bin/uname -r | grep 4.8.11)
    if [ $BR2016 ]; then
      printf "buildroot-2016.11.1\n"
      ARCH=buildroot-2016.11.1-x86_64
    else
      prtinf "Buildroot version not supported!"
      exit
    fi
  fi
fi

TEMP_DIR=/tmp/$USER/testing
rm -rf $TEMP_DIR
mkdir -p $TEMP_DIR

tar -zxf  $TAR_FILE -C $TEMP_DIR

PROJ_DIR=$(ls $TEMP_DIR)
DIR=$TEMP_DIR/$PROJ_DIR


# start control server
START_CMD="$TOP/$ARCH/bin/ControlServer -f $DIR/000TopLevel.yaml $ARGS"
echo $START_CMD
$START_CMD
