SQLCLI_CNF=

mysql_atexit() {
  [ -z "$SQLCLI_CNF" -o "$SQLCLI_CNF" = '/etc/mysql/debian.cnf' ] || rm -f "$SQLCLI_CNF" >/dev/null
}

mysql_safe_db_name() {
   echo "\`$1\`"
}

mysql_prepare_client() {
   local _host _port _admin _admpass remoteserver
   _host="$1"
   _port="$2"
   _admin="$3"
   _admpass="$4"

   which mysql >/dev/null || return 1

   if [ -z "$_host" ]; then
      remoteserver='no'
   elif [ "$_host" = 'localhost' -o "$_host" = '127.0.0.1' -o "$_host" = '::1' ]; then
      remoteserver='no'
   else
      remoteserver='yes'
   fi

   if [ "$remoteserver" = 'yes' -o -n "$_admin" ]; then
      SQLCLI_CNF=`mktemp --tmpdir 'my-XXXXXXXXXX.cnf'` || exit 1
      cat >>"$SQLCLI_CNF" <<EOF
# temporary my.cnf generated for usage by avreg-common 

[client]
user		= '${_admin:-}'
password	= '${_admpass:-}'
host		= '${_host:-}'
${_port:=#}port		= '${_port:-}'

[mysqldump]
user		= '${_admin:-}'
password	= '${_admpass:-}'
host		= '${_host:-}'
${_port:=#}port		= '${_port:-}'
EOF
   else
      SQLCLI_CNF='/etc/mysql/debian.cnf'
   fi
   
   SQLCLI="mysql --defaults-extra-file=$SQLCLI_CNF --default-character-set=utf8 --batch --no-beep --skip-pager --silent --skip-column-names"

   echo 'select version();' | $SQLCLI > /dev/null
}

mysql_check_db_exist() {
   if echo "use \`$1\`" | $SQLCLI >/dev/null 2>&1; then
      echo 'yes'
   else
      echo 'no'
   fi
}

# usage: 
#  1) mysql_exec_sql < file or echo "sqlcmd" | mysql_exec_sql
#  2) mysql_exec_sql dbname < sqlfile
#  3) echo "sqlcmd" | mysql_exec_sql dbname
#  4) mysql_exec_sql dbname sqlfile
mysql_exec_sql() {
   case $# in
      0)
         cat | $SQLCLI
         ;;
      1)
         if [ -f "$1" ]; then
            $SQLCLI < "$1"
         else
            cat | $SQLCLI --database="$1"
         fi
         ;;
      2)
         $SQLCLI --database="$1" < "$2"
         ;;
      *) return 1
         ;;
   esac
}

mysql_list_database_like() {
   echo "show databases like '$1'" | $SQLCLI
}

# usage: mysql_create_user $user $password $host
mysql_create_user() {
   r=$(echo "select User from mysql.user where Host='${3:-localhost}' and User = '$1'" | $SQLCLI)
   if [ -z "$r" ]; then
      echo "CREATE USER '$1'@'${3:-localhost}' IDENTIFIED BY '$2'" | $SQLCLI
   else
      echo "SET PASSWORD FOR '$1'@'${3:-localhost}'= PASSWORD('$2')" | $SQLCLI ;
   fi
}

mysql_drop_user() {
   echo "DROP USER '$1'@'localhost'" | $SQLCLI
}

