File: //usr/share/bash-completion/completions/dropdb
# 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