Magellan Linux

Annotation of /alx-src/branches/alxconf-060/functions/mysqlfunctions

Parent Directory Parent Directory | Revision Log Revision Log


Revision 344 - (hide annotations) (download)
Sun Oct 9 21:32:33 2005 UTC (18 years, 7 months ago) by niro
Original Path: alx-src/trunk/alxconfig-ng/functions/mysqlfunctions
File size: 2602 byte(s)
- fixed whitespaces
- added mysqldo function

1 niro 219 #!/bin/bash
2    
3     #
4     # mysql functions for the bash
5     # Version 0.1
6     #
7     # Niels Rogalla <niro@magellan-linux.de>
8     #
9 niro 344 # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/mysqlfunctions,v 1.8 2005-10-09 21:32:33 niro Exp $
10 niro 219
11 niro 344 mysql_command()
12     {
13 niro 219
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 niro 344 mysql_enum_colums()
54     {
55 niro 219 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 niro 284
110 niro 344 beep3x()
111     {
112 niro 284 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 niro 298 # set connection timeout to 20 secs
122     mysql --connect_timeout=20 \
123 niro 286 --user="${SQL_USER}" \
124     --password="${SQL_PASS}" \
125     --host="${SQL_HOST}" \
126     --database="${SQL_DB}" \
127 niro 284 --batch \
128 niro 293 --execute="" &> /dev/null && return 0 || \
129 niro 284 (
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 niro 344
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 *