summaryrefslogtreecommitdiff
path: root/completions/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'completions/mysql')
-rw-r--r--completions/mysql82
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