blob: 93631332c0907ddd8db80873ea8f54601c672ad4 (
plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# mysql(1) completion -*- shell-script -*-
_mysql_character_sets()
{
local IFS=$' \t\n' reset=$(shopt -p failglob)
shopt -u failglob
local -a charsets=(/usr/share/m{ariadb,ysql}/charsets/*.xml)
$reset
charsets=("${charsets[@]##*/}")
charsets=("${charsets[@]%%?(Index|\*).xml}" utf8)
COMPREPLY+=($(compgen -W '${charsets[@]}' -- "$cur"))
}
_mysql()
{
local cur prev words cword split
_init_completion -s || return
case $prev in
--user | -!(-*)u)
COMPREPLY=($(compgen -u -- "$cur"))
return
;;
--database | -!(-*)D)
COMPREPLY=($(compgen -W "$(mysqlshow 2>/dev/null | command sed -ne '2d' -e 's/^|.\([^|]*\)|.*/\1/p')" -- "$cur"))
return
;;
--host | -!(-*)h)
_known_hosts_real -- "$cur"
return
;;
--default-character-set)
_mysql_character_sets
return
;;
--character-sets-dir | --ssl-capath)
_filedir -d
return
;;
--socket | -!(-*)S)
_filedir sock
return
;;
--protocol)
COMPREPLY=($(compgen -W 'tcp socket pipe memory' -- "$cur"))
return
;;
--defaults-file | --defaults-extra-file | --tee)
_filedir
return
;;
--ssl-ca | --ssl-cert)
_filedir '@(pem|cer|c?(e)rt)'
return
;;
--ssl-key)
_filedir '@(pem|key)'
return
;;
--port | --set-variable | --ssl-cipher | --connect_timeout | \
--max_allowed_packet | --prompt | --net_buffer_length | --select_limit | \
--max_join_size | --server-arg | --debug | --delimiter | --execute | --pager | \
-!(-*)[Pe])
return
;;
--help | --version | -!(-*)[?IV])
return
;;
esac
$split && return
case $cur in
--*)
local help=$(_parse_help "$1")
help+=" --skip-comments --skip-ssl"
COMPREPLY=($(compgen -W "$help" -- "$cur"))
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
return
;;
# only complete long options
-)
compopt -o nospace
COMPREPLY=(--)
return
;;
esac
COMPREPLY=($(compgen -W \
"$(mysqlshow 2>/dev/null | command sed -ne '2d' -e 's/^|.\([^|]*\)|.*/\1/p')" \
-- "$cur"))
} &&
complete -F _mysql mysql
# ex: filetype=sh
|