[Dbconfig-common-devel] dbconfig-common/internal mysql,1.4,1.5

seanius@haydn.debian.org seanius@haydn.debian.org


Update of /cvsroot/dbconfig-common/dbconfig-common/internal
In directory haydn:/org/alioth.debian.org/chroot/home/users/seanius/tmp/cvs-serv11795/internal

Modified Files:
	mysql 
Log Message:
mysql dbc_dbname bugfixes

Index: mysql
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/internal/mysql,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- mysql	28 Apr 2005 03:11:29 -0000	1.4
+++ mysql	5 May 2005 03:01:22 -0000	1.5
@@ -81,7 +81,7 @@
 ##	including the mysql command itself
 ##
 dbc_mysql_exec_command(){
-	local statement l_sqlfile l_retval l_error
+	local statement l_sqlfile l_retval l_error l_dbname
 	statement=$@
 	l_retval=0
 	l_sqlfile=`mktemp -t dbconfig-common_sqlfile.XXXXXX`
@@ -89,7 +89,10 @@
 $statement
 EOF
 	mycnf=`_dbc_generate_mycnf`
-	l_error=`mysql --defaults-extra-file="$mycnf" $dbc_dbname < $l_sqlfile 2>&1` 
+	if [ ! "$_dbc_nodb" ]; then
+		l_dbname="$dbc_dbname"
+	fi
+	l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1` 
 	l_retval=$?
 	rm -f $mycnf $l_sqlfile
 	if [ $l_retval -ne 0 ]; then
@@ -115,7 +118,7 @@
 ##	not only does the user exist, but that it should be able to connect
 ##
 _dbc_mysql_check_user(){
-	local l_dballow l_dbname
+	local l_dballow l_retval _dbc_nodb
 	if [ ! "$dbc_dballow" ]; then
 		if [ ! "$dbc_dbserver" -o "$dbc_dbserver" = "localhost" ]; then
 			l_dballow=localhost
@@ -126,8 +129,8 @@
 		l_dballow="$dbc_dballow"
 	fi
 
-	l_dbname=$dbc_dbname
-	dbc_dbname='' dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" 2>/dev/null | grep -qi "GRANT ALL PRIVILEGES ON \`$l_dbname\`" 
+	_dbc_nodb="yes"
+	if dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" 2>/dev/null | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`" ; then
 	return $?
 }
 
@@ -149,7 +152,7 @@
 #               $dbc_error = error message (if $dbc_status = error)
 
 dbc_mysql_createdb(){
-	local ret l_dbname
+	local ret l_dbname _dbc_nodb
 	dbc_status=error
 
 	_dbc_sanity_check dbname dbadmin mysql || return 1
@@ -161,11 +164,10 @@
 		dbc_logline "already exists"
 		dbc_status=nothing
 	else
-		l_dbname=$dbc_dbname
-		dbc_dbname=""
-		dbc_mysql_exec_command "CREATE DATABASE $l_dbname"
+		_dbc_nodb="yes"
+		dbc_mysql_exec_command "CREATE DATABASE $dbc_dbname"
 		ret=$?
-		dbc_dbname=$l_dbname
+		_dbc_nodb=""
 		if [ "$ret" = "0" ]; then
 			dbc_logline "success"
 			dbc_logpart "verifying database $dbc_dbname exists:"
@@ -259,13 +261,12 @@
 	if _dbc_mysql_check_user; then
 		dbc_status=nothing
 		dbc_logline "already exists"
-		# XXX
 	else
 		l_dbname=$dbc_dbname
-		dbc_dbname=""
+		_dbc_nodb="yes"
 		dbc_mysql_exec_file "$l_sqlfile"
 		l_ret=$?
-		dbc_dbname=$l_dbname
+		_dbc_nodb=""
 
 		if [ "$l_ret" = "0" ]; then
 			dbc_logline "success"
@@ -324,7 +325,8 @@
 REVOKE ALL PRIVILEGES ON \`$dbc_dbname\`.* FROM '$dbc_dbuser'@'$l_dballow';
 FLUSH PRIVILEGES;
 EOF
-		if dbc_dbname='' dbc_mysql_exec_file "$l_sqlfile" 2>/dev/null; then
+		_dbc_nodb="yes"
+		if dbc_mysql_exec_file "$l_sqlfile" 2>/dev/null; then
 			dbc_status=drop
 			dbc_logline "success"
 		else