home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / etc / bash_completion.d / svk < prev    next >
Encoding:
Text File  |  2010-11-16  |  8.9 KB  |  226 lines

  1. # svk(1) completion
  2.  
  3. have svk &&
  4. _svk()
  5. {
  6.     local cur prev commands options command
  7.  
  8.     COMPREPLY=()
  9.     _get_comp_words_by_ref cur prev
  10.  
  11.     commands='add admin annotate ann blame praise cat checkout co cleanup \
  12.         cmerge cm commit ci copy cp delete del remove rm depotmap \
  13.         depot describe desc diff di help h ? import info list ls log \
  14.         merge mirror mi mkdir move mv ren rename patch propdel pd pdel \
  15.         propedit pe pedit propget pg pget proplist pl plist propset ps \
  16.         pset pull push resolved revert smerge sm status st stat switch \
  17.         sw sync sy update up verify'
  18.  
  19.     if [[ $COMP_CWORD -eq 1 ]] ; then
  20.         if [[ "$cur" == -* ]]; then
  21.             COMPREPLY=( $( compgen -W '--version' -- "$cur" ) )
  22.         else
  23.             COMPREPLY=( $( compgen -W "$commands" -- "$cur" ) )
  24.         fi
  25.     else
  26.         case $prev in
  27.             -F|--file|--targets)
  28.                 _filedir
  29.                 return 0;
  30.                 ;;
  31.             --encoding)
  32.                 COMPREPLY=( $( compgen -W \
  33.                     '$( iconv --list | sed -e "s@//@@;" )' -- "$cur" ) )
  34.                 return 0;
  35.                 ;;
  36.         esac
  37.  
  38.         command=${COMP_WORDS[1]}
  39.  
  40.         if [[ "$cur" == -* ]]; then
  41.             # possible options for the command
  42.             case $command in
  43.                 add)
  44.                     options=' --non-recursive -N -q --quiet'
  45.                     ;;
  46.                 blame|annotate|ann|praise)
  47.                     options='-r --revisions -x --cross'
  48.                     ;;
  49.                 cat)
  50.                     options='-r --revision'
  51.                     ;;
  52.                 checkout|co)
  53.                     options='-r --revision -q --quiet -N --non-recursive -l \
  54.                         --list -d --detach --export --relocate --purge'
  55.                     ;;
  56.                 cleanup)
  57.                     options='-a --all'
  58.                     ;;
  59.                 cmerge|cm)
  60.                     options='-c --change -l --log -r --revision -a --auto \
  61.                         --verbatim --no-ticket -m --message -F --file \
  62.                         --template --encoding -P --patch -S --sign -C \
  63.                         --check-only --direct'
  64.                     ;;
  65.                 commit|ci)
  66.                     options='--import -m --message -F --file --encoding \
  67.                         --template -P --patch -S --sign -C --check-only -N \
  68.                         --non-recursive --direct'
  69.                     ;;
  70.                 copy|cp)
  71.                     options='-r --revision -p --parent -q --quiet -m --message \
  72.                         -F --file --template --encoding -P --patch -S --sign \
  73.                         -C --check-only --direct'
  74.                     ;;
  75.                 delete|del|remove|rm)
  76.                     options='-k --keep-local -m --message -F --file --encoding \
  77.                         --template -P --patch -S --sign -C --check-only \
  78.                         --direct'
  79.                     ;;
  80.                 depotmap|depot)
  81.                     options='-i --init -l --list -d --detach --relocate'
  82.                     ;;
  83.                 diff|di)
  84.                     options='-r --revision -s --summarize -b --verbose -N \
  85.                         --non-recursive'
  86.                     ;;
  87.                 import)
  88.                     options='-f --from-checkout -t --to-checkout -m --message \
  89.                         -F --file --template --encoding -P --patch -S --sign \
  90.                         -C --check-only -N --non-recursive --direct'
  91.                     ;;
  92.                 list|ls)
  93.                     options='-r --revision -v --verbose -R --recursive -d \
  94.                         --depth -f --full-path'
  95.                     ;;
  96.                 log)
  97.                     options='-r --revision -l --limit -q --quiet -x --cross \
  98.                         -v --verbose'
  99.                     ;;
  100.                 merge)
  101.                     options='-r --revision -c --change -I --incremental -a \
  102.                         --auto -l --log -s --sync -t --to -f --from \
  103.                         --verbatim --no-ticket --track-rename -m --message \
  104.                         -F --file --template --encoding -P --patch -S --sign \
  105.                         -C --check-only --direct'
  106.                     ;;
  107.                 mirror|mi)
  108.                     options='-l --list -d --detach --relocate --recover \
  109.                         --unlock --upgrade'
  110.                     ;;
  111.                 mkdir)
  112.                     options='-p --parent -m --message -F --file --template \
  113.                         --encoding -P --patch -S --sign -C --check-only \
  114.                         --direct'
  115.                     ;;
  116.                 move|mv|rename|ren)
  117.                     options='-r --revision -p --parent -q --quiet -m \
  118.                         --message -F --file --encoding --template -P --patch \
  119.                         -S --sign -C --check-only --direct'
  120.                     ;;
  121.                 patch)
  122.                     options='--depot'
  123.                     ;;
  124.                 propdel|propset|pdel|pset|pd|ps)
  125.                     options='-R --recursive -r --revision --revprop -m \
  126.                         --message -F --file --template --encoding -P --patch \
  127.                         -S --sign -C --check-only -q --quiet --direct'
  128.                     ;;
  129.                 propedit|pedit|pe)
  130.                     options='-R --recursive -r --revision --revprop -m \
  131.                         --message -F --file --template --encoding -P --patch \
  132.                         -S --sign -C --check-only --direct'
  133.                     ;;
  134.                 propget|pget|pg)
  135.                     options='-R --recursive -r --revision --revprop --strict'
  136.                     ;;
  137.                 proplist|plist|pl)
  138.                     options='-R --recursive -v --verbose \
  139.                         -r --revision --revprop'
  140.                     ;;
  141.                 pull)
  142.                     options='-a --all -l --lump'
  143.                     ;;
  144.                 push)
  145.                     options='-f --from -l --lump -C --check -P --patch -S \
  146.                         --sign --verbatim'
  147.                     ;;
  148.                 resolved)
  149.                     options='-R --recursive'
  150.                     ;;
  151.                 revert)
  152.                     options='-R --recursive -q --quiet'
  153.                     ;;
  154.                 smerge|sm)
  155.                     options='-I --incremental -l --log -B --baseless -b \
  156.                         --base -s --sync -t --to -f --from --verbatim \
  157.                         --no-ticket --track-rename --host --remoterev -m \
  158.                         --message -F --file --template --encoding -P --patch \
  159.                         -S --sign -C --check-only --direct'
  160.                     ;;
  161.                 status|stat|st)
  162.                     options='-q --quiet --no-ignore -N --non-recursive -v \
  163.                         --verbose'
  164.                     ;;
  165.                 switch|sw)
  166.                     options='-r --revision -d --detach -q --quiet'
  167.                     ;;
  168.                 sync|sy)
  169.                     options='-a --all -s --skipto -t --torev'
  170.                     ;;
  171.                 update|up)
  172.                     options='-r --revision -N --non-recursive -C --check-only \
  173.                         -s --sync -m --merge -q --quiet'
  174.                     ;;
  175.             esac
  176.             options="$options --help -h"
  177.  
  178.             COMPREPLY=( $( compgen -W "$options" -- "$cur" ) )
  179.         else
  180.             case $command in
  181.                 help|h|\?)
  182.                     COMPREPLY=( $( compgen -W "$commands \
  183.                         environment commands intro" -- "$cur" ) )
  184.                     ;;
  185.                 admin)
  186.                     COMPREPLY=( $( compgen -W 'help deltify dump hotcopy \
  187.                         list-dblogs list-unused-dblogs load lstxns recover \
  188.                         rmtxns setlog verify rmcache' -- "$cur" ) )
  189.                     ;;
  190.                 patch)
  191.                     COMPREPLY=( $( compgen -W '--ls --list --cat --view \
  192.                         --regen --regenerate --up --update --apply --rm \
  193.                         --delete' -- "$cur" ) )
  194.                     ;;
  195.                 sync)
  196.                     COMPREPLY=( $( compgen -W "$( svk mirror --list \
  197.                         2>/dev/null | awk '/^\//{print $1}' )" -- "$cur" ) )
  198.                     ;;
  199.                 co|checkout|push|pull)
  200.                     if [[ "$cur" == //*/* ]]; then
  201.                         path=${cur%/*}/
  202.                     else
  203.                         path=//
  204.                     fi
  205.                     COMPREPLY=( $( compgen -W "$( svk list $path 2>/dev/null | \
  206.                         sed -e 's|\(.*\)|'$path'\1|')" -- "$cur" ) )
  207.                     ;;
  208.                 *)
  209.                     _filedir
  210.                     ;;
  211.             esac
  212.         fi
  213.     fi
  214.  
  215.     return 0
  216. } &&
  217. complete -F _svk -o filenames svk
  218.  
  219. # Local variables:
  220. # mode: shell-script
  221. # sh-basic-offset: 4
  222. # sh-indent-comment: t
  223. # indent-tabs-mode: nil
  224. # End:
  225. # ex: ts=4 sw=4 et filetype=sh
  226.