#set -x

Database=$1
Host=$2
User="$3"
PassWD="$4"
BackupFolder="$HOME/Documents/Backups/Databases"

if [ ! -d "$HOME/tmp" ]; then
  mkdir "$HOME/tmp"
fi

if [ ! -d "$BackupFolder" ]; then
  mkdir -p "$BackupFolder"
fi

if [ -f "$BackupFolder/CNF/$Database.cnf" ]; then
  if [-z $Host] && [ -z $User ] && [ -z $PassWD ]; then
    CNF="$BackupFolder/CNF/$Database.cnf"
    echo "Pointing to: \"$BackupFolder/CNF/$Database.cnf\""
# else
#   rm -f $CNF
  fi
fi

if [ -z $Host ]; then
  Host=localhost
fi

cd $BackupFolder/

if [ ! -f $Database.sql.tar.gz ] && [ ! -f $Database.sql ]; then
  echo "Checking Backup Folder [$BackupFolder/]..."
  echo "Database does not exist: $Database.sql.tar.gz"
  echo "Database does not exist: $Database.sql"
  exit;
fi

if [ ! -n "$CNF" ]; then
  CNF="$HOME/tmp/$Database.cnf"
  echo "Using: $User/$PassWD on $Host to $Database with $CNF"
  echo "[client]" > $CNF
  if [ -n "$Host" ]; then echo "host = $Host" >> $CNF; fi
  if [ -n "$User" ]; then echo "user = $User" >> $CNF; fi
  if [ -n "$PassWD" ]; then echo "password = $PassWD" >> $CNF; fi
fi;

/usr/bin/mysql --defaults-extra-file="$CNF" -e "CREATE DATABASE IF NOT EXISTS $Database"

if [ ! -f $Database.sql ]; then
  if [ -f $Database.sql.tar.gz ]; then
    echo "Extracting Database SQL File..."
    tar -xz --no-same-owner -f $Database.sql.tar.gz
    echo "Restoring Database to $Host: $Database"
    /usr/bin/mysql --defaults-extra-file="$CNF" $Database < "$Database.sql"
    rm -f $Database.sql
  fi;
else
  echo "Restoring Database to $Host: $Database"
  /usr/bin/mysql --defaults-extra-file="$CNF" $Database < "$Database.sql"
fi;
if [ $(dirname "$CNF") = "$HOME/tmp" ]; then rm -f "$CNF"; fi
