#!/bin/bash

####################################################################################
## This script connects to jaguar server and dumps a table data to output csv file
## to Jaguar server. The output file is DATABASE.TABLE.<ProcessID>.csv
##
##  ./jagimportcsv -d  DATABASE  -t TABLE -f CSVFILE
##
##  For example:
##  ./jagimportcsv -d  mydb  -t cardtable -f mydb.tab123.csv
##
####################################################################################


if [[ -f "$HOME/.jaguarhome" ]]; then
    export JAGUAR_HOME=`cat $HOME/.jaguarhome`
else
    export JAGUAR_HOME=$HOME/jaguar
fi

un=`uname -o`
if [[ "x$un" = "xMsys" ]] || [[ "x$un" = "xCygwin" ]]; then
    jqlbin=jql.exe
else
    jqlbin=jql.bin
fi


dbname=""
tabname=""
while getopts "d:t:f:h" opt; do
  case $opt in
    d)
	  dbname=$OPTARG
      ;;
    t)
	  tabname=$OPTARG
      ;;
    f)
	  csvfile=$OPTARG
      ;;
    h)
	  echo "$0  -d DATABASE -t TABLE -f csvfile"
	  exit 1
      ;;
    \?)
      echo "Invalid option: $OPTARG" 
	  echo "$0  -d DATABASE -t TABLE -f csvfile"
      exit 1
      ;;
    :)
      echo "Option $OPTARG requires an argument." 
	  echo "$0  -d DATABASE -t TABLE -f csvfile"
      exit 1
      ;;
  esac
done

if [[ "x$dbname" = "x" ]]; then
	echo "Error: database is not provided"
	echo "$0  -d DATABASE -t TABLE -f csvfile"
	exit 1
fi

if [[ "x$tabname" = "x" ]]; then
	echo "Error: table is not provided"
	echo "$0  -d DATABASE -t TABLE -f csvfile"
	exit 1
fi

if [[ "x$csvfile" = "x" ]]; then
	echo "Error: CSV file is not provided"
	echo "$0  -d DATABASE -t TABLE -f csvfile"
	exit 1
fi


pass=$ADMIN_PASSWORD
if [[ "x$pass" = "x" ]]; then
    echo -n "Please enter admin password: "
    read -s pass
    echo
fi


### check quote separator
if head $csvfile |grep -E "^\s*\"" > /dev/null; then
	separator="quote terminated by '\"' "
elif head $csvfile |grep -E "^\s*'" > /dev/null; then
	separator="quote terminated by '\'' "
else
	separator=""
fi


port=`grep PORT $JAGUAR_HOME/conf/server.conf |grep -v '#' | awk -F= '{print $2}'`
host=localhhost
date
cmdfile=jagimport.cmd.$$
echo "load $csvfile into $tabname $separator;" > $cmdfile
echo "quit;" >> $cmdfile
$JAGUAR_HOME/bin/$jqlbin -u admin -p $pass -d $dbname -h localhost:$port -v  < $cmdfile
/bin/rm -f  $cmdfile
date

