diff options
Diffstat (limited to 'contrib/svk')
-rw-r--r-- | contrib/svk | 466 |
1 files changed, 215 insertions, 251 deletions
diff --git a/contrib/svk b/contrib/svk index e2d0fac7..1b6f70fd 100644 --- a/contrib/svk +++ b/contrib/svk @@ -1,263 +1,227 @@ -# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- -# ex: ts=8 sw=8 noet filetype=sh -# # svk completion by Guillaume Rousse <guillomovitch@zarb.org> +have svk && _svk() { - local cur prev commands options command + local cur prev commands options command - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - 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' + 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 + if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--version' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) ) + fi + else - prev=${COMP_WORDS[COMP_CWORD-1]} - case $prev in - -@(F|-file|-targets)) - _filedir - return 0; - ;; - --encoding) - COMPREPLY=( $( compgen -W \ - '$( iconv --list | sed -e "s@//@@;" )' \ - -- "$cur" ) ) - return 0; - ;; - esac + prev=${COMP_WORDS[COMP_CWORD-1]} + 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]} + 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" + 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 + 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 $default svk + return 0 +} && +complete -F _svk $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 |