blob: 97bb1764b04846883f444ac2552d937433a8e8df (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# If a file ~/.mysql/$1.cnf exists, call mysql(1) using that file. Otherwise
# just run MySQL with given args. Use restrictive permissions on these files.
# Examples:
#
# [client]
# host=dbhost.example.com
# user=foo
# database=bar
# password=SsJ2pICe226jM
#
mysql() {
local config=$HOME/.mysql/$1.cnf
if [[ -r $config ]] ; then
shift
command mysql --defaults-extra-file="$config" "$@"
else
command mysql "$@"
fi
}
# Completion setup for MySQL for configured databases
_mysql() {
local word=${COMP_WORDS[COMP_CWORD]}
# Check directory exists and has at least one .cnf file
local dir=$HOME/.mysql
if [[ ! -d $dir ]] || (
shopt -s nullglob dotglob
declare -a files=("$dir"/*.cnf)
((! ${#files[@]}))
) ; then
return 1
fi
# Return the names of the .cnf files sans prefix as completions
local -a items=("$dir"/*.cnf)
items=("${items[@]##*/}")
items=("${items[@]%%.cnf}")
COMPREPLY=( $(compgen -W "${items[*]}" -- "$word") )
}
complete -F _mysql -o default mysql
|