summaryrefslogtreecommitdiffstats
path: root/completions/mysql
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 16:24:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 16:24:27 +0000
commit6c18848a903eb3ee06dccd915859ce64195c257c (patch)
treeea0fe36eb5e6f40e0a1f765d44c4b0c0b2bfb089 /completions/mysql
parentInitial commit. (diff)
downloadbash-completion-6c18848a903eb3ee06dccd915859ce64195c257c.tar.xz
bash-completion-6c18848a903eb3ee06dccd915859ce64195c257c.zip
Adding upstream version 1:2.11.upstream/1%2.11
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'completions/mysql')
-rw-r--r--completions/mysql99
1 files changed, 99 insertions, 0 deletions
diff --git a/completions/mysql b/completions/mysql
new file mode 100644
index 0000000..9363133
--- /dev/null
+++ b/completions/mysql
@@ -0,0 +1,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