diff options
Diffstat (limited to 'completions/psql')
-rw-r--r-- | completions/psql | 150 |
1 files changed, 81 insertions, 69 deletions
diff --git a/completions/psql b/completions/psql index 4bc6049..b05b3a4 100644 --- a/completions/psql +++ b/completions/psql @@ -1,97 +1,104 @@ # bash completion for Postgresql -*- shell-script -*- -_pg_databases() +_comp_cmd_psql__databases() { # -w was introduced in 8.4, https://launchpad.net/bugs/164772 # "Access privileges" in output may contain linefeeds, hence the NF > 1 - COMPREPLY=($(compgen -W "$(psql -XAtqwlF $'\t' 2>/dev/null | - awk 'NF > 1 { print $1 }')" -- "$cur")) + _comp_compgen_split -- "$(psql -XAtqwlF $'\t' 2>/dev/null | + _comp_awk 'NF > 1 { print $1 }')" } -_pg_users() +_comp_cmd_psql__users() { # -w was introduced in 8.4, https://launchpad.net/bugs/164772 - COMPREPLY=($(compgen -W "$(psql -XAtqwc 'select usename from pg_user' \ - template1 2>/dev/null)" -- "$cur")) - ((${#COMPREPLY[@]} == 0)) && COMPREPLY=($(compgen -u -- "$cur")) + _comp_compgen_split -- "$(psql -XAtqwc 'select usename from pg_user' \ + template1 2>/dev/null)" || + _comp_compgen -- -u } # createdb(1) completion # -_createdb() +_comp_cmd_createdb() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return + local noargopts='!(-*|*[hUOpDET]*)' + # shellcheck disable=SC2254 case $prev in - --host | -!(-*)h) - _known_hosts_real -- "$cur" + --host | -${noargopts}h) + _comp_compgen_known_hosts -- "$cur" return ;; - --username | --owner | -!(-*)[UO]) - _pg_users + --username | --owner | -${noargopts}[UO]) + _comp_cmd_psql__users return ;; - --help | --version | --port | --tablespace | --encoding | --template | -!(-*)[pDET]) + --help | --version | --port | --tablespace | --encoding | --template | \ + -${noargopts}[pDET]) return ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace else - _pg_databases + _comp_cmd_psql__databases fi } && - complete -F _createdb createdb + complete -F _comp_cmd_createdb createdb # createuser(1) completion # -_createuser() +_comp_cmd_createuser() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return + local noargopts='!(-*|*[pchU]*)' + # shellcheck disable=SC2254 case $prev in - --help | --version | --port | --connection-limit | -!(-*)[pc]) + --help | --version | --port | --connection-limit | -${noargopts}[pc]) return ;; - --host | -!(-*)h) - _known_hosts_real -- "$cur" + --host | -${noargopts}h) + _comp_compgen_known_hosts -- "$cur" return ;; - --username | -!(-*)U) - _pg_users + --username | -${noargopts}U) + _comp_cmd_psql__users return ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace fi } && - complete -F _createuser createuser + complete -F _comp_cmd_createuser createuser # dropdb(1) completion # -_dropdb() +_comp_cmd_dropdb() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return + local noargopts='!(-*|*[hU]*)' + # shellcheck disable=SC2254 case $prev in - --host | -!(-*)h) - _known_hosts_real -- "$cur" + --host | -${noargopts}h) + _comp_compgen_known_hosts -- "$cur" return ;; - --username | -!(-*)U) - _pg_users + --username | -${noargopts}U) + _comp_cmd_psql__users return ;; --help | --version) @@ -99,90 +106,95 @@ _dropdb() ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace else - _pg_databases + _comp_cmd_psql__databases fi } && - complete -F _dropdb dropdb + complete -F _comp_cmd_dropdb dropdb # dropuser(1) completion # -_dropuser() +_comp_cmd_dropuser() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return + local noargopts='!(-*|*[phU]*)' + # shellcheck disable=SC2254 case $prev in - --help | --version | --port | -!(-*)p) + --help | --version | --port | -${noargopts}p) return ;; - --host | -!(-*)h) - _known_hosts_real -- "$cur" + --host | -${noargopts}h) + _comp_compgen_known_hosts -- "$cur" return ;; - --username | -!(-*)U) - _pg_users + --username | -${noargopts}U) + _comp_cmd_psql__users return ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace else - _pg_users + _comp_cmd_psql__users fi } && - complete -F _dropuser dropuser + complete -F _comp_cmd_dropuser dropuser # psql(1) completion # -_psql() +_comp_cmd_psql() { - local cur prev words cword split - _init_completion -s || return + local cur prev words cword was_split comp_args + _comp_initialize -s -- "$@" || return + local noargopts='!(-*|*[hUdofLcFpPRTv]*)' + # shellcheck disable=SC2254 case $prev in - --host | -!(-*)h) - _known_hosts_real -- "$cur" + --host | -${noargopts}h) + _comp_compgen_known_hosts -- "$cur" return ;; - --username | -!(-*)U) - _pg_users + --username | -${noargopts}U) + _comp_cmd_psql__users return ;; - --dbname | -!(-*)d) - _pg_databases + --dbname | -${noargopts}d) + _comp_cmd_psql__databases return ;; - --output | --file | --log-file | -!(-*)[ofL]) - _filedir + --output | --file | --log-file | -${noargopts}[ofL]) + _comp_compgen_filedir return ;; --help | --version | --command | --field-separator | --port | --pset | \ - --record-separator | --table-attr | --set | --variable | -!(-*)[?VcFpPRTv]) + --record-separator | --table-attr | --set | --variable | \ + -${noargopts}[?VcFpPRTv]) return ;; esac - $split && return + [[ $was_split ]] && return if [[ $cur == -* ]]; then # return list of available options - COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace else # return list of available databases - _pg_databases + _comp_cmd_psql__databases fi } && - complete -F _psql psql + complete -F _comp_cmd_psql psql # ex: filetype=sh |