home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / bash-completion / contrib / svk < prev    next >
Encoding:
Text File  |  2009-01-21  |  6.5 KB  |  263 lines

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