#!/bin/bash

function grepmysql {
    if [[ -z "$1" ]]; then
        __func_head "MySQL_SERVER_NAME [WITH_OPTIONS]"
        echo
    else
        if [[ -z "$2" ]]; then
            grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $2 }'
        else
            grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $2" "$3 }'
        fi
    fi
}

function mysqlo () {
    if [ -z "$1" ]; then
        __func_head "SERVER_NAME"
        echo
    else
        PASS=$(grepmysql $1 true)
        if [ -z "$PASS" ]; then
            echo "Server not found in config: $1"
            return 1
        fi

        PS_SQL=$(grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $4 }')
        USER=$(grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $5 }')

        export MYSQL_PS1="$PS_SQL> "

        shift

        echo $__mysql
        mysql -u $USER --password=$PASS $@
        unset PS_SQL
    fi
}

function mysqls () {
    if [ -z "$1" ]; then
        __func_head "[z] SERVER_NAME DATABASE_NAME SQL_FILE"
        echo
    else
        GZIP=false
		PV=false
		_ANY=false
        if [[ "$1" == *z* ]]; then
            GZIP=true
			_ANY=true
		fi
		if [[ "$1" == *p* ]]; then
			PV=true
			_ANY=true
		fi
		if $_ANY; then
			shift
		fi

        USER=$(grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $5 }')
        PASS=$(grepmysql $1 true)

        if [ -z "$PASS" ]; then
            echo "Server not found in config: $1"
            return 1
        fi

        if $GZIP; then
			if $PV; then
				pv $3 | gunzip | mysql -u $USER --password=$PASS -D $2
			else
				gunzip -c $3 | mysql -u $USER --password=$PASS -D $2
			fi
        else
			if $PV; then
				pv $3 | mysql -u $USER --password=$PASS -D $2
			else
				mysql -u $USER --password=$PASS -D $2 < $3
			fi
        fi
    fi
}