diff options
Diffstat (limited to 'completions/svk')
-rw-r--r-- | completions/svk | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/completions/svk b/completions/svk new file mode 100644 index 0000000..9079df1 --- /dev/null +++ b/completions/svk @@ -0,0 +1,214 @@ +# svk(1) completion -*- shell-script -*- + +_svk() +{ + local cur prev words cword + _init_completion || return + + local commands options command + + 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 ((cword == 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 + ;; + --encoding) + _xfunc iconv _iconv_charsets + return + ;; + esac + + command=${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+=" --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 "$($1 mirror --list \ + 2>/dev/null | awk '/^\//{print $1}')" -- "$cur")) + ;; + co | checkout | push | pull) + if [[ $cur == //*/* ]]; then + path=${cur%/*}/ + else + path=// + fi + COMPREPLY=($(compgen -W "$($1 list $path 2>/dev/null | + command sed -e 's|\(.*\)|'$path'\1|')" -- "$cur")) + ;; + *) + _filedir + ;; + esac + fi + fi +} && + complete -F _svk svk + +# ex: filetype=sh |