mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
189 lines
4.3 KiB
Bash
189 lines
4.3 KiB
Bash
# bash completion for Postgresql -*- shell-script -*-
|
|
|
|
_pg_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"))
|
|
}
|
|
|
|
_pg_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"))
|
|
}
|
|
|
|
# createdb(1) completion
|
|
#
|
|
_createdb()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--host | -!(-*)h)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
--username | --owner | -!(-*)[UO])
|
|
_pg_users
|
|
return
|
|
;;
|
|
--help | --version | --port | --tablespace | --encoding | --template | -!(-*)[pDET])
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
else
|
|
_pg_databases
|
|
fi
|
|
} &&
|
|
complete -F _createdb createdb
|
|
|
|
# createuser(1) completion
|
|
#
|
|
_createuser()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--help | --version | --port | --connection-limit | -!(-*)[pc])
|
|
return
|
|
;;
|
|
--host | -!(-*)h)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
--username | -!(-*)U)
|
|
_pg_users
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
fi
|
|
} &&
|
|
complete -F _createuser createuser
|
|
|
|
# dropdb(1) completion
|
|
#
|
|
_dropdb()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--host | -!(-*)h)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
--username | -!(-*)U)
|
|
_pg_users
|
|
return
|
|
;;
|
|
--help | --version)
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
else
|
|
_pg_databases
|
|
fi
|
|
} &&
|
|
complete -F _dropdb dropdb
|
|
|
|
# dropuser(1) completion
|
|
#
|
|
_dropuser()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--help | --version | --port | -!(-*)p)
|
|
return
|
|
;;
|
|
--host | -!(-*)h)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
--username | -!(-*)U)
|
|
_pg_users
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
else
|
|
_pg_users
|
|
fi
|
|
} &&
|
|
complete -F _dropuser dropuser
|
|
|
|
# psql(1) completion
|
|
#
|
|
_psql()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--host | -!(-*)h)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
--username | -!(-*)U)
|
|
_pg_users
|
|
return
|
|
;;
|
|
--dbname | -!(-*)d)
|
|
_pg_databases
|
|
return
|
|
;;
|
|
--output | --file | --log-file | -!(-*)[ofL])
|
|
_filedir
|
|
return
|
|
;;
|
|
--help | --version | --command | --field-separator | --port | --pset | \
|
|
--record-separator | --table-attr | --set | --variable | -!(-*)[?VcFpPRTv])
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
if [[ $cur == -* ]]; then
|
|
# return list of available options
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
else
|
|
# return list of available databases
|
|
_pg_databases
|
|
fi
|
|
} &&
|
|
complete -F _psql psql
|
|
|
|
# ex: filetype=sh
|