Add bunch of cvs command option completions.

This commit is contained in:
Ville Skyttä 2009-10-20 21:50:21 +03:00
parent 992226b134
commit d2ce9f59bd

View File

@ -38,13 +38,19 @@ _cvs_command_options()
cvs --help $1 2>&1 | sed -ne 's/^[[:space:]]*\(-[^[:space:]=[]*\).*/\1/p'
}
_cvs_kflags()
{
COMPREPLY=( $( compgen -W 'kv kvl k o b v' -- "$cur" ) )
}
_cvs()
{
local cur count mode i cvsroot cvsroots pwd
local cur prev count mode i cvsroot cvsroots pwd
local -a flags miss files entries changed newremoved
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
count=0
for i in "${COMP_WORDS[@]}"; do
@ -117,8 +123,6 @@ _cvs()
up?(d?(ate)))
mode=update
;;
*)
;;
esac
elif [[ "$i" = -* ]]; then
flags=( "${flags[@]}" $i )
@ -128,6 +132,16 @@ _cvs()
case "$mode" in
add)
case "$prev" in
-m)
return 0
;;
-k)
_cvs_kflags
return 0
;;
esac
if [[ "$cur" != -* ]]; then
set_prefix
if [ $COMP_CWORD -gt 1 -a -r ${prefix:-}CVS/Entries ]; then
@ -146,12 +160,28 @@ _cvs()
fi
;;
admin)
case "$prev" in
-a|-A|-b|-c|-e|-l|-m|-n|-N|-o|-s|-t-|-u)
return 0
;;
-t)
_filedir
return 0
;;
-k)
_cvs_kflags
return 0
;;
esac
if [[ "$cur" = -* ]]; then
COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \
-- "$cur" ) )
fi
;;
annotate)
[[ "$prev" == -@(r|D) ]] && return 0
if [[ "$cur" = -* ]]; then
COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \
-- "$cur" ) )
@ -161,6 +191,20 @@ _cvs()
fi
;;
checkout)
case "$prev" in
-r|-D|j)
return 0
;;
-d)
_filedir -d
return 0
;;
-k)
_cvs_kflags
return 0
;;
esac
if [[ "$cur" != -* ]]; then
[ -z "$cvsroot" ] && cvsroot=$CVSROOT
COMPREPLY=( $( cvs -d "$cvsroot" co -c 2> /dev/null | \
@ -172,6 +216,16 @@ _cvs()
fi
;;
commit)
case "$prev" in
-m|-r)
return 0
;;
-F)
_filedir
return 0
;;
esac
set_prefix
if [[ "$cur" != -* ]] && [ -r ${prefix:-}CVS/Entries ]; then
@ -205,6 +259,20 @@ _cvs()
fi
;;
export)
case "$prev" in
-r|-D)
return 0
;;
-d)
_filedir -d
return 0
;;
-k)
_cvs_kflags
return 0
;;
esac
if [[ "$cur" != -* ]]; then
[ -z "$cvsroot" ] && cvsroot=$CVSROOT
COMPREPLY=( $( cvs -d "$cvsroot" co -c | awk '{print $1}' ) )
@ -239,6 +307,16 @@ _cvs()
fi
;;
import)
case "$prev" in
-I|-b|-m|-W)
return 0
;;
-k)
_cvs_kflags
return 0
;;
esac
if [[ "$cur" != -* ]]; then
# starts with same algorithm as checkout
[ -z "$cvsroot" ] && cvsroot=$CVSROOT
@ -257,6 +335,16 @@ _cvs()
fi
;;
update)
case "$prev" in
-r|-D|-j|-I|-W)
return 0
;;
-k)
_cvs_kflags
return 0
;;
esac
if [[ "$cur" = -* ]]; then
COMPREPLY=( $( compgen -W "$( _cvs_command_options $mode )" \
-- "$cur" ) )
@ -266,8 +354,6 @@ _cvs()
COMPREPLY=( $( compgen -W '$( _cvs_commands ) $( _cvs_options ) \
--help --help-commands --help-options --version' -- "$cur" ) )
;;
*)
;;
esac
return 0