diff --git a/completions/.gitignore b/completions/.gitignore index ae9feb60..b1f5d7f7 100644 --- a/completions/.gitignore +++ b/completions/.gitignore @@ -28,6 +28,7 @@ composite conjure cowthink createdb +createuser dcop declare dfutool diff --git a/completions/Makefile.am b/completions/Makefile.am index 6b494bea..1a841d6b 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -446,6 +446,7 @@ CLEANFILES = \ conjure \ cowthink \ createdb \ + createuser \ dcop \ declare \ dfutool \ @@ -828,7 +829,7 @@ symlinks: $(targetdir) $(DATA) rm -f $(targetdir)/$$file && \ $(LN_S) pm-hibernate $(targetdir)/$$file ; \ done - for file in createdb dropdb ; do \ + for file in createdb createuser dropdb ; do \ rm -f $(targetdir)/$$file && \ $(LN_S) psql $(targetdir)/$$file ; \ done diff --git a/completions/psql b/completions/psql index a43cdaf6..12dc9de4 100644 --- a/completions/psql +++ b/completions/psql @@ -53,6 +53,36 @@ _createdb() } && complete -F _createdb createdb +# createuser(1) completion +# +_createuser() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --help|--version|-p|--port|-c|--connection-limit) + return + ;; + -h|--host) + _known_hosts_real "$cur" + return + ;; + -U|--username) + _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() diff --git a/test/completion/createuser.exp b/test/completion/createuser.exp new file mode 100644 index 00000000..ad1c24c9 --- /dev/null +++ b/test/completion/createuser.exp @@ -0,0 +1 @@ +assert_source_completions createuser diff --git a/test/lib/completions/createuser.exp b/test/lib/completions/createuser.exp new file mode 100644 index 00000000..87d4ac87 --- /dev/null +++ b/test/lib/completions/createuser.exp @@ -0,0 +1,18 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "createuser -" +sync_after_int + + +teardown