diff options
Diffstat (limited to 'completions/mysql')
-rw-r--r-- | completions/mysql | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/completions/mysql b/completions/mysql new file mode 100644 index 00000000..effd313c --- /dev/null +++ b/completions/mysql @@ -0,0 +1,82 @@ +# mysql(1) completion -*- shell-script -*- + +_mysql() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -u|--user) + COMPREPLY=( $( compgen -u -- "$cur" ) ) + return 0 + ;; + -D|--database) + COMPREPLY=( $( compgen -W "$(mysqlshow 2>/dev/null|sed -ne '2d' -e 's/^|.\([^|]*\)|.*/\1/p')" -- "$cur" ) ) + return 0 + ;; + + -h|--host) + _known_hosts_real "$cur" + return 0 + ;; + --default-character-set) + [ -d /usr/share/mysql/charsets ] && \ + COMPREPLY=( $( compgen -W "$(command ls /usr/share/mysql/charsets|sed -e '/^\(README\|Index\.xml\)$/d' -e 's/.xml$//') utf8" -- "$cur" ) ) + return 0 + ;; + + --character-sets-dir|--ssl-capath) + _filedir -d + return 0 + ;; + -S|--socket) + _filedir sock + return 0 + ;; + --protocol) + COMPREPLY=( $( compgen -W 'tcp socket pipe memory' -- "$cur" ) ) + return 0 + ;; + --defaults-file|--defaults-extra-file|--tee) + _filedir + return 0 + ;; + --default-character-set|-P|--port|--set-variable|\ + --ssl-ca|--ssl-cert|--ssl-cipher|--ssl-key|\ + --connect_timeout|--max_allowed_packet|--prompt|\ + --net_buffer_length|--select_limit|--max_join_size|\ + --server-arg|--debug|--delimiter|--execute|-e|--pager) + # Argument required but no completions available + return 0 + ;; + '-?'|-I|--help|-V|--version) + # All other options are noop with these + return 0 + ;; + esac + + case $cur in + --*) + local help=$(_parse_help "$1") + help+=" --skip-comments --skip-ssl" + + COMPREPLY=( $( compgen -W "$help" -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + return 0 + ;; + + # only complete long options + -) + compopt -o nospace + COMPREPLY=( -- ) + return 0 + ;; + esac + + COMPREPLY=( $( compgen -W \ + "$(mysqlshow 2>/dev/null|sed -ne '2d' -e 's/^|.\([^|]*\)|.*/\1/p')" \ + -- "$cur" ) ) +} && +complete -F _mysql mysql + +# ex: ts=4 sw=4 et filetype=sh |