Magellan Linux

Diff of /mcore-src/trunk/mcore-tools/src/include/mysqlfunctions.global.class.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

mcore-src/trunk/mcore-tools/daemon/include/mysqlfunctions.global.class revision 2093 by niro, Tue May 21 09:09:51 2013 UTC mcore-src/trunk/mcore-tools/src/include/mysqlfunctions.global.class.in revision 2483 by niro, Thu Sep 10 10:55:29 2015 UTC
# Line 1  Line 1 
 #!/bin/bash  
   
 #  
 # mysql functions for the bash  
 # Version 0.1  
 #  
 # Niels Rogalla <niro@magellan-linux.de>  
 #  
1  # $Id$  # $Id$
2    
3  mysql_command()  mysql_command()
4  {  {
5     local sql_user
6   local SQL_USER   local sql_pass
7   local SQL_PASS   local sql_host
8   local SQL_HOST   local sql_db
9   local SQL_DB   local sql_command
10   local SQL_COMMAND  
11     sql_user=$1
12   SQL_USER=$1   sql_pass=$2
13   SQL_PASS=$2   sql_host=$3
14   SQL_HOST=$3   sql_db=$4
15   SQL_DB=$4   sql_command=$5
16   SQL_COMMAND=$5  
17     #fallback (sql_opts not, they are optional )
18   #fallback (SQL_OPTS not, they are optional )   if [ -z "${sql_user}" \
19   if [ -z "${SQL_USER}" \   -o -z "${sql_pass}" \
20   -o -z "${SQL_PASS}" \   -o -z "${sql_host}" \
21   -o -z "${SQL_HOST}" \   -o -z "${sql_db}" \
22   -o -z "${SQL_DB}" \   -o -z "${sql_command}" ]
  -o -z "${SQL_COMMAND}" ]  
23   then   then
24   echo   echo
25   echo "Usage:"   echo "Usage:"
# Line 36  mysql_command() Line 27  mysql_command()
27   echo   echo
28   return 1   return 1
29   fi   fi
30    
31   mysql \   mysql \
32   --user="${SQL_USER}" \   --user="${sql_user}" \
33   --password="${SQL_PASS}" \   --password="${sql_pass}" \
34   --host="${SQL_HOST}" \   --host="${sql_host}" \
35   --database="${SQL_DB}" \   --database="${sql_db}" \
36   --batch \   --batch \
37   --skip-column-names \   --skip-column-names \
38   --execute="${SQL_COMMAND}" \   --execute="${sql_command}" \
39   || return 1   || return 1
40    
41   return 0   return 0
42  }  }
43    
44  mysql_enum_colums()  mysql_enum_colums()
45  {  {
46   local SQL_USER   local sql_user
47   local SQL_PASS   local sql_pass
48   local SQL_HOST   local sql_host
49   local SQL_DB   local sql_db
50   local SQL_TABLE   local sql_table
51    
52   local SHOWTABLES   local showtables
53   local i   local i
54   local read   local read
55   local field   local field
# Line 67  mysql_enum_colums() Line 58  mysql_enum_colums()
58   local key   local key
59   local default   local default
60   local extra   local extra
61    
62   SQL_USER=$1   sql_user=$1
63   SQL_PASS=$2   sql_pass=$2
64   SQL_HOST=$3   sql_host=$3
65   SQL_DB=$4   sql_db=$4
66   SQL_TABLE=$5   sql_table=$5
67    
68   #show the column names ?   # show the column names ?
69   if [ -n "${6}" -a "${6}" == "show" ]   if [ -n "${6}" -a "${6}" == "show" ]
70   then   then
71   SHOWTABLES=true   showtables=true
72   else   else
73   SHOWTABLES=false   showtables=false
74   fi   fi
75    
76   #fallback (SQL_OPTS not, they are optional )   # fallback (sql_opts not, they are optional )
77   if [ -z "${SQL_USER}" \   if [ -z "${sql_user}" \
78   -o -z "${SQL_PASS}" \   -o -z "${sql_pass}" \
79   -o -z "${SQL_HOST}" \   -o -z "${sql_host}" \
80   -o -z "${SQL_DB}" \   -o -z "${sql_db}" \
81   -o -z "${SQL_TABLE}" ]   -o -z "${sql_table}" ]
82   then   then
83   echo   echo
84   echo "Usage:"   echo "Usage:"
# Line 100  mysql_enum_colums() Line 91  mysql_enum_colums()
91   while read field type null key default extra   while read field type null key default extra
92   do   do
93   i=${i}+1   i=${i}+1
94   [ "${SHOWTABLES}" == true ] && echo "${field}"   [ "${showtables}" == true ] && echo "${field}"
95   done << EOF   done << EOF
96  $(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} "show columns from ${SQL_TABLE};")  $(mysql_command ${sql_user} ${sql_pass} ${sql_host} ${sql_db} "show columns from ${sql_table};")
97  EOF  EOF
98   [ "${SHOWTABLES}" == true ] || echo "${i}"   [ "${showtables}" == true ] || echo "${i}"
99  }  }
100    
101  beep3x()  beep3x()
# Line 120  reach_mysql_server() Line 111  reach_mysql_server()
111  {  {
112   # set connection timeout to 20 secs   # set connection timeout to 20 secs
113   mysql --connect_timeout=20 \   mysql --connect_timeout=20 \
114   --user="${SQL_USER}" \   --user="${MCORE_SQL_USER}" \
115   --password="${SQL_PASS}" \   --password="${MCORE_SQL_PASS}" \
116   --host="${SQL_HOST}" \   --host="${MCORE_SQL_HOST}" \
117   --database="${SQL_DB}" \   --database="${MCORE_SQL_DB}" \
118   --batch \   --batch \
119   --execute="" &> /dev/null && return 0 || \   --execute="" &> /dev/null && return 0 || \
120   (   (
121   echo -e ${COLRED}   echo -e ${COLRED}
122   echo "Cannot reach a mysql-server at '${SQL_HOST}'."   echo "Cannot reach a mysql-server at '${MCORE_SQL_HOST}'."
123   echo "None of the current settings of this client will be touched."   echo "None of the current settings of this client will be touched."
124   echo "Please inform your system-administrator."   echo "Please inform your system-administrator."
125   echo -e ${COLDEFAULT}   echo -e ${COLDEFAULT}
# Line 141  reach_mysql_server() Line 132  reach_mysql_server()
132  mysqldo()  mysqldo()
133  {  {
134   mysql_command \   mysql_command \
135   "${SQL_USER}" \   "${MCORE_SQL_USER}" \
136   "${SQL_PASS}" \   "${MCORE_SQL_PASS}" \
137   "${SQL_HOST}" \   "${MCORE_SQL_HOST}" \
138   "${SQL_DB}" \   "${MCORE_SQL_DB}" \
139   "$@" \   "$@" \
140   && return 0 || return 1   && return 0 || return 1
141  }  }
# Line 157  evaluate_table() Line 148  evaluate_table()
148   local all_vars   local all_vars
149   local all_items   local all_items
150   local i   local i
151   local COUNT   local count
152   local where_statement   local where_statement
153    
154   local table="$1"   local table="$1"
# Line 170  evaluate_table() Line 161  evaluate_table()
161   fi   fi
162    
163   # setup arrays   # setup arrays
164   all_vars=( $(mysql_enum_colums ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} ${table} show) )   all_vars=( $(mysql_enum_colums ${MCORE_SQL_USER} ${MCORE_SQL_PASS} ${MCORE_SQL_HOST} ${MCORE_SQL_DB} ${table} show) )
165   all_items=( $(mysqldo "select * from ${table} ${where_statement}") )   all_items=( $(mysqldo "select * from ${table} ${where_statement}") )
166    
167   # sanity check   # sanity check
# Line 179  evaluate_table() Line 170  evaluate_table()
170   echo "error: arrays does not match!"   echo "error: arrays does not match!"
171   fi   fi
172    
173   COUNT=${#all_vars[*]}   count=${#all_vars[*]}
174   for ((i=0;i < COUNT; i++))   for ((i=0;i < count; i++))
175   do   do
176   eval $(echo ${table}_${all_vars[${i}]}=\${all_items[${i}]})   eval $(echo ${table}_${all_vars[${i}]}=\${all_items[${i}]})
177   export ${table}_${all_vars[${i}]}   export ${table}_${all_vars[${i}]}
# Line 203  evaluate_table_xml() Line 194  evaluate_table_xml()
194   fi   fi
195    
196   export eval $(mysql \   export eval $(mysql \
197   --user="${SQL_USER}" \   --user="${MCORE_SQL_USER}" \
198   --password="${SQL_PASS}" \   --password="${MCORE_SQL_PASS}" \
199   --host="${SQL_HOST}" \   --host="${MCORE_SQL_HOST}" \
200   --database="${SQL_DB}" \   --database="${MCORE_SQL_DB}" \
201   --xml \   --xml \
202   --execute="select * from ${table} ${where_statement}" \   --execute="select * from ${table} ${where_statement}" \
203   | xml sel -T -t -m //row/field \   | xml sel -T -t -m //row/field \

Legend:
Removed from v.2093  
changed lines
  Added in v.2483