mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-24 19:52:58 -08:00
100 lines
2.6 KiB
Bash
100 lines
2.6 KiB
Bash
# 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
|