Contents of /alx-src/tags/alxconf_20060908_19/functions/mysqlfunctions
Parent Directory | Revision Log
Revision 1724 -
(show annotations)
(download)
Thu Feb 17 16:29:55 2011 UTC (13 years, 7 months ago) by niro
File size: 2602 byte(s)
Thu Feb 17 16:29:55 2011 UTC (13 years, 7 months ago) by niro
File size: 2602 byte(s)
tagged 'alxconf_20060908_19'
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 | * |