diff options
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | contrib/cvsps | 69 | ||||
-rw-r--r-- | test/completion/cvsps.exp | 3 | ||||
-rw-r--r-- | test/lib/completions/cvsps.exp | 20 |
5 files changed, 95 insertions, 2 deletions
@@ -29,8 +29,8 @@ bash-completion (2.x) mysqladmin, rsync, screen, service, scp, ssh, sshfs, update-alternatives, vncviewer, and general hostname completions. * Add abook and wtf completion, based on work by Raphaƫl Droz. - * Add fusermount, jarsigner, k3b, lftpget, pm-utils, pack200 and unpack200 - completions. + * Add cvsps, fusermount, jarsigner, k3b, lftpget, pm-utils, pack200 and + unpack200 completions. * Don't overwrite other host completions when completing from multiple SSH known hosts files. * Speed up installed rpm package completion on SUSE, based on work by diff --git a/Makefile.am b/Makefile.am index 95cd96c4..fc38afd6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -30,6 +30,7 @@ bashcomp_DATA = contrib/abook \ contrib/cpio \ contrib/cups \ contrib/cvs \ + contrib/cvsps \ contrib/dd \ contrib/dhclient \ contrib/dict \ diff --git a/contrib/cvsps b/contrib/cvsps new file mode 100644 index 00000000..d6295740 --- /dev/null +++ b/contrib/cvsps @@ -0,0 +1,69 @@ +# bash completion for cvsps + +have cvsps && +_cvsps() +{ + COMPREPLY=() + local cur=`_get_cword :` prev=`_get_pword :` + + case "$prev" in + -h|-z|-f|-d|-l|--diff-opts|--debuglvl) + return 0 + ;; + -s) + COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null | + awk '/^PatchSet:?[[:space:]]/ { print $2 }' )" -- "$cur" ) ) + return 0 + ;; + -a) + COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null | + awk '/^Author:[[:space:]]/ { print $2 }' )" -- "$cur" ) ) + return 0 + ;; + -b) + COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null | + awk '/^Branch:[[:space:]]/ { print $2 }' )" -- "$cur" ) ) + return 0 + ;; + -r) + COMPREPLY=( $( compgen -W "$( cvsps 2>/dev/null | + awk '/^Tag:[[:space:]]+[^(]/ { print $2 }' )" \ + -- "$cur" ) ) + return 0 + ;; + -p) + _filedir -d + return 0 + ;; + --test-log) + _filedir + return 0 + ;; + -Z) + COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) ) + return 0 + ;; + --root) + type _cvs_roots &>/dev/null && _cvs_roots + return 0 + ;; + esac + + if [[ "$cur" == -* ]] ; then + COMPREPLY=( $( compgen -W '-h -x -u -z -g -s -a -f -d -b -l -r -p -v \ + -t --norc --summary-first --test-log --diff-opts --bkcvs --no-rlog \ + --cvs-direct --no-cvs-direct --debuglvl -Z --root -q -A' \ + -- "$cur" ) ) + else + type _cvs_roots &>/dev/null && _cvs_roots + fi +} && +complete -F _cvsps cvsps + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh diff --git a/test/completion/cvsps.exp b/test/completion/cvsps.exp new file mode 100644 index 00000000..771d584f --- /dev/null +++ b/test/completion/cvsps.exp @@ -0,0 +1,3 @@ +if {[assert_bash_type cvsps]} { + source "lib/completions/cvsps.exp" +}; # if diff --git a/test/lib/completions/cvsps.exp b/test/lib/completions/cvsps.exp new file mode 100644 index 00000000..add74c0b --- /dev/null +++ b/test/lib/completions/cvsps.exp @@ -0,0 +1,20 @@ +proc setup {} { + save_env +}; # setup() + + +proc teardown {} { + assert_env_unmodified +}; # teardown() + + +setup + + +assert_complete_any "cvsps " + + +sync_after_int + + +teardown |