home *** CD-ROM | disk | FTP | other *** search
- # svk(1) completion
-
- have svk &&
- _svk()
- {
- local cur prev commands options command
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- commands='add admin annotate ann blame praise cat checkout co cleanup \
- cmerge cm commit ci copy cp delete del remove rm depotmap \
- depot describe desc diff di help h ? import info list ls log \
- merge mirror mi mkdir move mv ren rename patch propdel pd pdel \
- propedit pe pedit propget pg pget proplist pl plist propset ps \
- pset pull push resolved revert smerge sm status st stat switch \
- sw sync sy update up verify'
-
- if [[ $COMP_CWORD -eq 1 ]] ; then
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '--version' -- "$cur" ) )
- else
- COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) )
- fi
- else
- case $prev in
- -F|--file|--targets)
- _filedir
- return 0;
- ;;
- --encoding)
- COMPREPLY=( $( compgen -W \
- '$( iconv --list | sed -e "s@//@@;" )' -- "$cur" ) )
- return 0;
- ;;
- esac
-
- command=${COMP_WORDS[1]}
-
- if [[ "$cur" == -* ]]; then
- # possible options for the command
- case $command in
- add)
- options=' --non-recursive -N -q --quiet'
- ;;
- blame|annotate|ann|praise)
- options='-r --revisions -x --cross'
- ;;
- cat)
- options='-r --revision'
- ;;
- checkout|co)
- options='-r --revision -q --quiet -N --non-recursive -l \
- --list -d --detach --export --relocate --purge'
- ;;
- cleanup)
- options='-a --all'
- ;;
- cmerge|cm)
- options='-c --change -l --log -r --revision -a --auto \
- --verbatim --no-ticket -m --message -F --file \
- --template --encoding -P --patch -S --sign -C \
- --check-only --direct'
- ;;
- commit|ci)
- options='--import -m --message -F --file --encoding \
- --template -P --patch -S --sign -C --check-only -N \
- --non-recursive --direct'
- ;;
- copy|cp)
- options='-r --revision -p --parent -q --quiet -m --message \
- -F --file --template --encoding -P --patch -S --sign \
- -C --check-only --direct'
- ;;
- delete|del|remove|rm)
- options='-k --keep-local -m --message -F --file --encoding \
- --template -P --patch -S --sign -C --check-only \
- --direct'
- ;;
- depotmap|depot)
- options='-i --init -l --list -d --detach --relocate'
- ;;
- diff|di)
- options='-r --revision -s --summarize -b --verbose -N \
- --non-recursive'
- ;;
- import)
- options='-f --from-checkout -t --to-checkout -m --message \
- -F --file --template --encoding -P --patch -S --sign \
- -C --check-only -N --non-recursive --direct'
- ;;
- list|ls)
- options='-r --revision -v --verbose -R --recursive -d \
- --depth -f --full-path'
- ;;
- log)
- options='-r --revision -l --limit -q --quiet -x --cross \
- -v --verbose'
- ;;
- merge)
- options='-r --revision -c --change -I --incremental -a \
- --auto -l --log -s --sync -t --to -f --from \
- --verbatim --no-ticket --track-rename -m --message \
- -F --file --template --encoding -P --patch -S --sign \
- -C --check-only --direct'
- ;;
- mirror|mi)
- options='-l --list -d --detach --relocate --recover \
- --unlock --upgrade'
- ;;
- mkdir)
- options='-p --parent -m --message -F --file --template \
- --encoding -P --patch -S --sign -C --check-only \
- --direct'
- ;;
- move|mv|rename|ren)
- options='-r --revision -p --parent -q --quiet -m \
- --message -F --file --encoding --template -P --patch \
- -S --sign -C --check-only --direct'
- ;;
- patch)
- options='--depot'
- ;;
- propdel|propset|pdel|pset|pd|ps)
- options='-R --recursive -r --revision --revprop -m \
- --message -F --file --template --encoding -P --patch \
- -S --sign -C --check-only -q --quiet --direct'
- ;;
- propedit|pedit|pe)
- options='-R --recursive -r --revision --revprop -m \
- --message -F --file --template --encoding -P --patch \
- -S --sign -C --check-only --direct'
- ;;
- propget|pget|pg)
- options='-R --recursive -r --revision --revprop --strict'
- ;;
- proplist|plist|pl)
- options='-R --recursive -v --verbose \
- -r --revision --revprop'
- ;;
- pull)
- options='-a --all -l --lump'
- ;;
- push)
- options='-f --from -l --lump -C --check -P --patch -S \
- --sign --verbatim'
- ;;
- resolved)
- options='-R --recursive'
- ;;
- revert)
- options='-R --recursive -q --quiet'
- ;;
- smerge|sm)
- options='-I --incremental -l --log -B --baseless -b \
- --base -s --sync -t --to -f --from --verbatim \
- --no-ticket --track-rename --host --remoterev -m \
- --message -F --file --template --encoding -P --patch \
- -S --sign -C --check-only --direct'
- ;;
- status|stat|st)
- options='-q --quiet --no-ignore -N --non-recursive -v \
- --verbose'
- ;;
- switch|sw)
- options='-r --revision -d --detach -q --quiet'
- ;;
- sync|sy)
- options='-a --all -s --skipto -t --torev'
- ;;
- update|up)
- options='-r --revision -N --non-recursive -C --check-only \
- -s --sync -m --merge -q --quiet'
- ;;
- esac
- options="$options --help -h"
-
- COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
- else
- case $command in
- help|h|\?)
- COMPREPLY=( $( compgen -W "$commands \
- environment commands intro" -- "$cur" ) )
- ;;
- admin)
- COMPREPLY=( $( compgen -W 'help deltify dump hotcopy \
- list-dblogs list-unused-dblogs load lstxns recover \
- rmtxns setlog verify rmcache' -- "$cur" ) )
- ;;
- patch)
- COMPREPLY=( $( compgen -W '--ls --list --cat --view \
- --regen --regenerate --up --update --apply --rm \
- --delete' -- "$cur" ) )
- ;;
- sync)
- COMPREPLY=( $( compgen -W "$( svk mirror --list \
- 2>/dev/null | awk '/^\//{print $1}' )" -- "$cur" ) )
- ;;
- co|checkout|push|pull)
- if [[ "$cur" == //*/* ]]; then
- path=${cur%/*}/
- else
- path=//
- fi
- COMPREPLY=( $( compgen -W "$( svk list $path 2>/dev/null | \
- sed -e 's|\(.*\)|'$path'\1|')" -- "$cur" ) )
- ;;
- *)
- _filedir
- ;;
- esac
- fi
- fi
-
- return 0
- } &&
- complete -F _svk -o filenames svk
-
- # 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
-