[Dbconfig-common-devel] dbconfig-common/internal mysql,1.6,1.7
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-serv32451/internal
Modified Files:
mysql
Log Message:
slightly cleaner implementation capturing stderr, and\
removing some duplication of code between mysql functions
Index: mysql
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/internal/mysql,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- mysql 5 May 2005 04:44:28 -0000 1.6
+++ mysql 7 May 2005 22:43:05 -0000 1.7
@@ -55,8 +55,9 @@
## note this is done without passing any sensitive info on the cmdline
##
dbc_mysql_exec_file(){
- local l_sqlfile l_retval l_error l_dbname
+ local l_sqlfile l_retval l_error l_dbname l_errfile
l_sqlfile=$1
+ l_errfile=`mktemp -t dbconfig-common_sql_exec_error.XXXXXX`
if [ ! "$l_sqlfile" ]; then
dbc_error="no file supplied to execute"
@@ -64,22 +65,16 @@
return 1
fi
- mycnf=`_dbc_generate_mycnf`
if [ ! "$_dbc_nodb" ]; then
l_dbname="$dbc_dbname"
fi
- if [ ! "$_dbc_pass_output" ]; then
- l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1`
- else
- mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile
- fi
- l_retval=$?
- rm -f $mycnf
- if [ $l_retval -ne 0 ]; then
- dbc_error="mysql said: $l_error"
- return $l_retval
+ mycnf=`_dbc_generate_mycnf`
+ if ! mysql --defaults-extra-file="$mycnf" $l_dbname 2>"$l_errfile" <$l_sqlfile; then
+ dbc_error="mysql said: `cat $l_errfile`"
fi
+ rm -f "$mycnf" "$l_errfile"
+ return $l_retval
}
##
@@ -89,38 +84,26 @@
## including the mysql command itself
##
dbc_mysql_exec_command(){
- local statement l_sqlfile l_retval l_error l_dbname
+ local statement l_sqlfile l_retval
statement=$@
l_retval=0
l_sqlfile=`mktemp -t dbconfig-common_sqlfile.XXXXXX`
cat << EOF > $l_sqlfile
$statement
EOF
- mycnf=`_dbc_generate_mycnf`
- if [ ! "$_dbc_nodb" ]; then
- l_dbname="$dbc_dbname"
- fi
- if [ ! "$_dbc_pass_output" ]; then
- l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1`
- else
- mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile
- fi
-
+ dbc_mysql_exec_file "$l_sqlfile"
l_retval=$?
- rm -f $mycnf $l_sqlfile
- if [ $l_retval -ne 0 ]; then
- dbc_error="mysql said: $l_error"
- return $l_retval
- fi
+ rm -f "$l_sqlfile"
+ return $l_retval
}
##
## check for the existance of a specified database
##
_dbc_mysql_check_database(){
- local dbc_dbname local _dbc_nodb _dbc_pass_output
+ local dbc_dbname local _dbc_nodb
dbc_dbname=$1
- _dbc_nodb="yes" _dbc_pass_output="yes" dbc_mysql_exec_command "SHOW DATABASES" 2>/dev/null | grep -q "^$dbc_dbname\$"
+ _dbc_nodb="yes" dbc_mysql_exec_command "SHOW DATABASES" 2>/dev/null | grep -q "^$dbc_dbname\$"
return $?
}
@@ -142,7 +125,7 @@
l_dballow="$dbc_dballow"
fi
- if ! _dbc_pass_output="yes" _dbc_nodb="yes" dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`"; then
+ if ! _dbc_nodb="yes" dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`"; then
return 1
else
return 0