Magellan Linux

Contents of /alx-src/trunk/alxconfig-ng/functions/mysqlfunctions

Parent Directory Parent Directory | Revision Log Revision Log


Revision 344 - (show annotations) (download)
Sun Oct 9 21:32:33 2005 UTC (18 years, 6 months ago) by niro
File size: 2602 byte(s)
- fixed whitespaces
- added mysqldo function

1 #!/bin/bash
2
3 #
4 # mysql functions for the bash
5 # Version 0.1
6 #
7 # Niels Rogalla <niro@magellan-linux.de>
8 #
9 # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/mysqlfunctions,v 1.8 2005-10-09 21:32:33 niro Exp $
10
11 mysql_command()
12 {
13
14 local SQL_USER
15 local SQL_PASS
16 local SQL_HOST
17 local SQL_DB
18 local SQL_COMMAND
19
20 SQL_USER=$1
21 SQL_PASS=$2
22 SQL_HOST=$3
23 SQL_DB=$4
24 SQL_COMMAND=$5
25
26 #fallback (SQL_OPTS not, they are optional )
27 if [ -z "${SQL_USER}" \
28 -o -z "${SQL_PASS}" \
29 -o -z "${SQL_HOST}" \
30 -o -z "${SQL_DB}" \
31 -o -z "${SQL_COMMAND}" ]
32 then
33 echo
34 echo "Usage:"
35 echo -e " mysql_command user pass host db \"sql-command\""
36 echo
37 return 1
38 fi
39
40 mysql \
41 --user="${SQL_USER}" \
42 --password="${SQL_PASS}" \
43 --host="${SQL_HOST}" \
44 --database="${SQL_DB}" \
45 --batch \
46 --skip-column-names \
47 --execute="${SQL_COMMAND}" \
48 || return 1
49
50 return 0
51 }
52
53 mysql_enum_colums()
54 {
55 local SQL_USER
56 local SQL_PASS
57 local SQL_HOST
58 local SQL_DB
59 local SQL_TABLE
60
61 local SHOWTABLES
62 local i
63 local read
64 local field
65 local type
66 local null
67 local key
68 local default
69 local extra
70
71 SQL_USER=$1
72 SQL_PASS=$2
73 SQL_HOST=$3
74 SQL_DB=$4
75 SQL_TABLE=$5
76
77 #show the column names ?
78 if [ -n "${6}" -a "${6}" == "show" ]
79 then
80 SHOWTABLES=true
81 else
82 SHOWTABLES=false
83 fi
84
85 #fallback (SQL_OPTS not, they are optional )
86 if [ -z "${SQL_USER}" \
87 -o -z "${SQL_PASS}" \
88 -o -z "${SQL_HOST}" \
89 -o -z "${SQL_DB}" \
90 -o -z "${SQL_TABLE}" ]
91 then
92 echo
93 echo "Usage:"
94 echo -e " mysql_enum_columns user pass host db table [show]"
95 echo
96 return 1
97 fi
98
99 declare -i i=0
100 while read field type null key default extra
101 do
102 i=${i}+1
103 [ "${SHOWTABLES}" == true ] && echo "${field}"
104 done << EOF
105 $(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} "show columns from ${SQL_TABLE};")
106 EOF
107 [ "${SHOWTABLES}" == true ] || echo "${i}"
108 }
109
110 beep3x()
111 {
112 echo -en "\a"
113 sleep 0.7
114 echo -en "\a"
115 sleep 0.7
116 echo -en "\a"
117 }
118
119 reach_mysql_server()
120 {
121 # set connection timeout to 20 secs
122 mysql --connect_timeout=20 \
123 --user="${SQL_USER}" \
124 --password="${SQL_PASS}" \
125 --host="${SQL_HOST}" \
126 --database="${SQL_DB}" \
127 --batch \
128 --execute="" &> /dev/null && return 0 || \
129 (
130 echo -e ${COLRED}
131 echo "Cannot reach a mysql-server at '${SQL_HOST}'."
132 echo "None of the current settings of this client will be touched."
133 echo "Please inform your system-administrator."
134 echo -e ${COLDEFAULT}
135 beep3x
136 sleep 5
137 return 1
138 )
139 }
140
141 mysqldo()
142 {
143 mysql_command \
144 "${SQL_USER}" \
145 "${SQL_PASS}" \
146 "${SQL_HOST}" \
147 "${SQL_DB}" \
148 "$@" \
149 && return 0 || return 1
150 }

Properties

Name Value
svn:executable *