diff --git a/share/completions/mysql.fish b/share/completions/mysql.fish index 6d26f212d..af66066a6 100644 --- a/share/completions/mysql.fish +++ b/share/completions/mysql.fish @@ -1,3 +1,5 @@ +__fish_complete_mysql mysql + complete -c mysql -f complete -c mysql -s I -s \? -l help -d 'Display a help message' @@ -13,8 +15,7 @@ complete -c mysql -s c -l comments -d 'Preserve comments in statements' complete -c mysql -l skip-comments -d 'Discard comments in statements' complete -c mysql -s C -l compress -d 'Compress all information' complete -c mysql -l connect-timeout -x -d 'Set the number of seconds before connection timeout' -complete -c mysql -s D -l database -x -d 'The database to use' -a '(mysqlshow 2>/dev/null | tail -n +3 | string replace -rf \'\| *(\S*) *\|\' \'$1\')' -complete -c mysql -a '(mysqlshow 2>/dev/null | tail -n +3 | string replace -rf \'\| *(\S*) *\|\' \'$1\')' + complete -c mysql -s \# -l debug -d 'Write a debugging log' complete -c mysql -l debug-check -d 'Print some debugging information' complete -c mysql -s T -l debug-info -d 'Prints debugging information and memory and CPU usage' diff --git a/share/completions/mysqldump.fish b/share/completions/mysqldump.fish new file mode 100644 index 000000000..3b1b7bf9f --- /dev/null +++ b/share/completions/mysqldump.fish @@ -0,0 +1 @@ +__fish_complete_mysql mysqldump diff --git a/share/functions/__fish_complete_mysql.fish b/share/functions/__fish_complete_mysql.fish new file mode 100644 index 000000000..5e9fab55d --- /dev/null +++ b/share/functions/__fish_complete_mysql.fish @@ -0,0 +1,25 @@ +function __fish_mysql_query -a query + argparse -i 'u/user=' 'P/port=' 'h/host=' 'p/password=?' 'S/socket=' -- (commandline -po) + set -l mysql_cmd mysql + for flag in u P h S + if set -q _flag_$flag + set -l flagvar _flag_$flag + set -a mysql_cmd -$flag $$flagvar + end + end + if [ -n "$_flag_p" ] + set -a mysql_cmd -p$_flag_p + end + echo $query | $mysql_cmd 2>/dev/null +end + +function __fish_complete_mysql_databases + __fish_mysql_query 'show databases' +end + +function __fish_complete_mysql + set -l command $argv[1] + + complete -c $command -s D -l database -x -d 'The database to use' -a '(__fish_complete_mysql_databases)' + complete -c $command -a '(__fish_complete_mysql_databases)' +end