diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2011-01-08 23:28:38 +0200 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2011-01-08 23:28:38 +0200 |
commit | fe2d7645df9f619a33feb8c8d7c89b1ea5fcad6b (patch) | |
tree | 24bca861ae85cfb7485baf5e62f9aaaf7a19f700 | |
parent | b1dbd1d7123c1541833db4e78383dade281ac702 (diff) | |
download | bash-completion-fe2d7645df9f619a33feb8c8d7c89b1ea5fcad6b.tar.gz |
Re-enable postgresql database and user completion (Alioth: #312914, Ubuntu: #164772).
This implementation uses -w which is available only in psql >= 8.4,
but the net effect with earlier versions should be the same as when
the completions were disabled.
-rw-r--r-- | CHANGES | 2 | ||||
-rw-r--r-- | completions/postgresql | 17 |
2 files changed, 10 insertions, 9 deletions
@@ -42,6 +42,8 @@ bash-completion (2.x) * Add *.apk to unzip and jar filename completions. * Do not load bash_completion in profile.d script if progcomp is not enabled. * Ignore muttrc source entries that are not files (Alioth: #312881). + * Re-enable postgresql database and user completion (Alioth: #312914, + Ubuntu: #164772). [ Freddy Vulto ] * Added _tilde(), fix ~username completion (Alioth: #312613, Debian: #587095) diff --git a/completions/postgresql b/completions/postgresql index d42d6e17..f874b67b 100644 --- a/completions/postgresql +++ b/completions/postgresql @@ -3,19 +3,18 @@ have psql && { _pg_databases() { - return # See https://launchpad.net/bugs/164772 - COMPREPLY=( $( compgen -W "$( psql -l 2>/dev/null | \ - sed -e '1,/^-/d' -e '/^(/,$d' | \ - awk '{print $1}' )" -- "$cur" ) ) + # -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 -AtqwlF $'\t' 2>/dev/null | \ + awk 'NF > 1 { print $1 }' )" -- "$cur" ) ) } _pg_users() { - # See https://launchpad.net/bugs/164772 - #COMPREPLY=( $( psql -qtc 'select usename from pg_user' template1 2>/dev/null | \ - # command grep "^ $cur" ) ) - #[ ${#COMPREPLY[@]} -eq 0 ] && COMPREPLY=( $( compgen -u -- $cur ) ) - COMPREPLY=( $( compgen -u -- "$cur" ) ) + # -w was introduced in 8.4, https://launchpad.net/bugs/164772 + COMPREPLY=( $( compgen -W "$( psql -Atqwc 'select usename from pg_user' \ + template1 2>/dev/null )" -- "$cur" ) ) + [ ${#COMPREPLY[@]} -eq 0 ] && COMPREPLY=( $( compgen -u -- "$cur" ) ) } # createdb(1) completion |