#!/bin/bash

# Colour definitions
COLOUR=""
COL_DEFAULT="\e[39m"
COL_YELLOW="\e[93m"
COL_LIGHT_RED="\e[91m"
COL_LIGHT_GREEN="\e[92m"
COL_LIGHT_BLUE="\e[34m"

RELEASE=$(cat /etc/redhat-release)
NOT_EXPECTED_OS=CentOS
echo $RELEASE
if [[ "$RELEASE" == *"$NOT_EXPECTED_OS"* ]]; then
  echo "Cannot import on current server"
  exit
fi

# Need IP
echo "Please provide the internal IP of the current server: "
read CURRENT_SERVER_IP

download_file () {
    FILE_NAME=$1
    FILE_URL=$2
    echo "Downloading $FILE_NAME from $FILE_URL"
    curl -f -k -o $FILE_NAME $FILE_URL
    RESULT=$?
    echo "Result $RESULT"
    if [ "$RESULT" != "0" ];
    then
        echo "Failed to download $FILE_NAME from $FILE_URL"
        exit
    fi
}

HOST_ARG=$1
HOST="${HOST_ARG:-localhost}" 
DB_PASSWORD=""
DB_RAW_PWD=$DB_PASSWORD
DB_USERNAME=root
EXPORT_SUFFIX=$(date +%Y_%B)
DB_DATA=db-sog-logs-$EXPORT_SUFFIX.sql

EXPORT_SUFFIX=$(hostname)_$(date +%Y_%B)
if [ ! -d migration ];
then
    mkdir migration
fi
cd migration

download_file $DB_DATA https://$CURRENT_SERVER_IP/$DB_DATA

COLOUR=""
MYSQL_PROMPT="MySQL"
DONE="no"
while [ "$DONE" == "no" ];
do
    printf "$COLOUR"
    echo "$MYSQL_PROMPT connection required. Please enter MySQL credentials"
    printf "$COL_DEFAULT"
    read -p "Username: " -e DB_USERNAME
    read -p "Password: " -e DB_PASSWORD
    MYSQL_PROMPT="Valid MySQL"    
    COLOUR=$COL_LIGHT_RED
    if [ "$DB_USERNAME" == "quit" ] && [ "$DB_PASSWORD" == "quit" ];
    then
        print_notice "Exiting..."
        # User exit application stop inform outside database not properly checked
        exit 1
    fi

    if [ "$DB_PASSWORD" != "" ];
    then
        DB_RAW_PWD=$DB_PASSWORD
        # mysql expects password to follow straight after the -p flag.
        DB_PASSWORD="-p$DB_PASSWORD"
    fi
    TEST_MYSQL=$(mysql -h$HOST -u $DB_USERNAME $DB_PASSWORD -e "show grants for current_user" 2>&1)
    # Expect a user with all privileges
    ERR_MYSQL=$(echo $TEST_MYSQL | grep ERROR)
    GRANT_ENOUGH=$(echo $TEST_MYSQL | grep -i 'ALL PRIVILEGES')    
    if [ "$ERR_MYSQL" == "" ] && [ "$GRANT_ENOUGH" != "" ];
    then
        DONE="yes"  
    fi    
done

# echo "Clear database"
echo "Import sog data"
mysql -h ${HOST} -u ${DB_USERNAME} $DB_PASSWORD sog < $DB_DATA