From 35302e458f28be1629cc773c1d66cc05ee253cbd Mon Sep 17 00:00:00 2001 From: Guillaume Rousse Date: Thu, 21 May 2009 01:21:31 +0200 Subject: [PATCH] split postgresql completion --- Makefile.am | 1 + bash_completion | 129 -------------------------------------------- contrib/postgresql | 131 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 129 deletions(-) create mode 100644 contrib/postgresql diff --git a/Makefile.am b/Makefile.am index d06c4ac9..28057e57 100644 --- a/Makefile.am +++ b/Makefile.am @@ -57,6 +57,7 @@ bashcomp_DATA = contrib/ant \ contrib/openssl \ contrib/p4 \ contrib/pkg-config \ + contrib/postgresql \ contrib/povray \ contrib/qdbus \ contrib/qemu \ diff --git a/bash_completion b/bash_completion index a52cb8d7..b83f403d 100644 --- a/bash_completion +++ b/bash_completion @@ -3493,135 +3493,6 @@ _openssl_sections() -- $cur ) ) } -# Postgresql completion -# -have psql && { -_pg_databases() -{ - return # intentionally disabled in 7ebed6af (TODO: why?) - COMPREPLY=( $( compgen -W "$( psql -l 2>/dev/null | \ - sed -e '1,/^-/d' -e '/^(/,$d' | \ - awk '{print $1}' )" -- $cur ) ) -} - -_pg_users() -{ - #COMPREPLY=( $( psql -qtc 'select usename from pg_user' template1 2>/dev/null | \ - # grep "^ $cur" ) ) - #[ ${#COMPREPLY[@]} -eq 0 ] && COMPREPLY=( $( compgen -u -- $cur ) ) - COMPREPLY=( $( compgen -u -- $cur ) ) -} - -# createdb(1) completion -# -_createdb() -{ - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(h|-host=)) - _known_hosts - return 0 - ;; - -@(U|-username=)) - _pg_users - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-D -T -E -h -p -U -W -e -q \ - --location= --template= --encoding= --host= --port= \ - --username= --password --echo --quiet --help' -- $cur )) - else - _pg_databases - fi -} -complete -F _createdb $default createdb - -# dropdb(1) completion -# -_dropdb() -{ - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(h|-host=)) - _known_hosts - return 0 - ;; - -@(U|-username=)) - _pg_users - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-h -p -U -W -e -q \ - --host= --port= --username= --password \ - --interactive --echo --quiet --help' -- $cur ) ) - else - _pg_databases - fi -} -complete -F _dropdb $default dropdb - -# psql(1) completion -# -_psql() -{ - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -h|--host) - _known_hosts - return 0 - ;; - -U|--username) - _pg_users - return 0 - ;; - -d|--dbname) - _pg_databases - return 0 - ;; - -@(o|f)|--output|--file) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - # return list of available options - COMPREPLY=( $( compgen -W '-a --echo-all -A --no-align \ - -c --command -d --dbname -e --echo-queries \ - -E --echo-hidden -f --file -F --filed-separator \ - -h --host -H --html -l --list -n -o --output \ - -p --port -P --pset -q -R --record-separator \ - -s --single-step -S --single-line -t --tuples-only \ - -T --table-attr -U --username -v --variable \ - -V --version -W --password -x --expanded -X --nopsqlrc \ - -? --help ' -- $cur ) ) - else - # return list of available databases - _pg_databases - fi -} -complete -F _psql $default psql -} - _longopt() { local cur prev diff --git a/contrib/postgresql b/contrib/postgresql new file mode 100644 index 00000000..d0b974eb --- /dev/null +++ b/contrib/postgresql @@ -0,0 +1,131 @@ +# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- +# ex: ts=8 sw=8 noet filetype=sh +# +# bash completion for Postgresql + +have psql && { +_pg_databases() +{ + return # intentionally disabled in 7ebed6af (TODO: why?) + COMPREPLY=( $( compgen -W "$( psql -l 2>/dev/null | \ + sed -e '1,/^-/d' -e '/^(/,$d' | \ + awk '{print $1}' )" -- $cur ) ) +} + +_pg_users() +{ + #COMPREPLY=( $( psql -qtc 'select usename from pg_user' template1 2>/dev/null | \ + # grep "^ $cur" ) ) + #[ ${#COMPREPLY[@]} -eq 0 ] && COMPREPLY=( $( compgen -u -- $cur ) ) + COMPREPLY=( $( compgen -u -- $cur ) ) +} + +# createdb(1) completion +# +_createdb() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(h|-host=)) + _known_hosts + return 0 + ;; + -@(U|-username=)) + _pg_users + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-D -T -E -h -p -U -W -e -q \ + --location= --template= --encoding= --host= --port= \ + --username= --password --echo --quiet --help' -- $cur )) + else + _pg_databases + fi +} +complete -F _createdb $default createdb + +# dropdb(1) completion +# +_dropdb() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(h|-host=)) + _known_hosts + return 0 + ;; + -@(U|-username=)) + _pg_users + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-h -p -U -W -e -q \ + --host= --port= --username= --password \ + --interactive --echo --quiet --help' -- $cur ) ) + else + _pg_databases + fi +} +complete -F _dropdb $default dropdb + +# psql(1) completion +# +_psql() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -h|--host) + _known_hosts + return 0 + ;; + -U|--username) + _pg_users + return 0 + ;; + -d|--dbname) + _pg_databases + return 0 + ;; + -@(o|f)|--output|--file) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # return list of available options + COMPREPLY=( $( compgen -W '-a --echo-all -A --no-align \ + -c --command -d --dbname -e --echo-queries \ + -E --echo-hidden -f --file -F --filed-separator \ + -h --host -H --html -l --list -n -o --output \ + -p --port -P --pset -q -R --record-separator \ + -s --single-step -S --single-line -t --tuples-only \ + -T --table-attr -U --username -v --variable \ + -V --version -W --password -x --expanded -X --nopsqlrc \ + -? --help ' -- $cur ) ) + else + # return list of available databases + _pg_databases + fi +} +complete -F _psql $default psql +}