Package: svk Version: 0.991-1 Severity: wishlist Tags: patch svk uses almost exactly the same commands as svn, but it had no bash_completion. So, i took some time to create one quickly. Please create a file called "svk" on /etc/bash_completion.d with the following information:
=======++=== START CUT ===++======= # Programmable completion for the svk command under bash. # This file was inspired on svn bash_completion file # Source this file to use it # Known to work with bash 2.05a with programmable completion and extended # pattern matching enabled (use 'shopt -s extglob progcomp' to enable # these if they are not already enabled). _svk() { local cur cmds cmdOpts pOpts mOpts rOpts qOpts nOpts optsParam opt local helpCmds optBase i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without unambiguous abbreviations such as "up". cmds='add blame annotate praise cat checkout co cleanup commit ci \ copy cp delete remove rm diff export help ? import info \ list ls log merge mkdir move mv rename \ propdel pdel propedit pedit propget pget \ proplist plist propset pset resolved revert \ status switch update --version' if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="-r|--revision|--username|--password|--targets| |-x|--extensions|-m|--message|-F|--file|--encoding| |--diff-cmd|--diff3-cmd|--editor-cmd|--old|--new| |--config-dir|--native-eol" # if not typing an option, or if the previous option required a # parameter, then fallback on ordinary filename expansion helpCmds='help|--help|h|\?' if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \ [[ "$cur" != -* ]] || \ [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then return 0 fi pOpts="--username --password --no-auth-cache --non-interactive" mOpts="-m --message -F --file --encoding --force-log" rOpts="-r --revision" qOpts="-q --quiet" nOpts="-N --non-recursive" # possible options for the command cmdOpts= case ${COMP_WORDS[1]} in --version) cmdOpts="$qOpts" ;; add) cmdOpts="--auto-props --no-auto-props --force --targets \ $nOpts $qOpts" ;; blame|annotate|ann|praise) cmdOpts="$rOpts $pOpts -v --verbose" ;; cat) cmdOpts="$rOpts $pOpts" ;; checkout|co) cmdOpts="$rOpts $qOpts $nOpts $pOpts" ;; cleanup) cmdOpts="--diff3-cmd" ;; commit|ci) cmdOpts="$mOpts $qOpts $nOpts --targets --editor-cmd $pOpts" ;; copy|cp) cmdOpts="$mOpts $rOpts $qOpts --editor-cmd $pOpts" ;; delete|del|remove|rm) cmdOpts="--force $mOpts $qOpts --targets --editor-cmd $pOpts" ;; diff|di) cmdOpts="$rOpts -x --extensions --diff-cmd --no-diff-deleted \ $nOpts $pOpts --old --new --notice-ancestry" ;; export) cmdOpts="$rOpts $qOpts $pOpts --force --native-eol" ;; help|h|\?) cmdOpts="$cmds $qOpts" ;; import) cmdOpts="--auto-props --no-auto-props $mOpts $qOpts $nOpts \ --editor-cmd $pOpts" ;; info) cmdOpts="--targets -R --recursive" ;; list|ls) cmdOpts="$rOpts -v --verbose -R --recursive $pOpts" ;; log) cmdOpts="$rOpts -v --verbose --targets $pOpts --stop-on-copy \ --incremental --xml $qOpts" ;; merge) cmdOpts="$rOpts $nOpts $qOpts --force --dry-run --diff3-cmd \ $pOpts --ignore-ancestry" ;; mkdir) cmdOpts="$mOpts $qOpts --editor-cmd $pOpts" ;; move|mv|rename|ren) cmdOpts="$mOpts $rOpts $qOpts --force --editor-cmd $pOpts" ;; propdel|pdel|pd) cmdOpts="$qOpts -R --recursive $rOpts --revprop $pOpts" ;; propedit|pedit|pe) cmdOpts="$rOpts --revprop --encoding --editor-cmd $pOpts \ --force" ;; propget|pget|pg) cmdOpts="-R --recursive $rOpts --revprop --strict $pOpts" ;; proplist|plist|pl) cmdOpts="-v --verbose -R --recursive $rOpts --revprop $qOpts \ $pOpts" ;; propset|pset|ps) cmdOpts="-F --file $qOpts --targets -R --recursive --revprop \ --encoding $pOpts $rOpts --force" ;; resolved) cmdOpts="--targets -R --recursive $qOpts" ;; revert) cmdOpts="--targets -R --recursive $qOpts" ;; status|stat|st) cmdOpts="-u --show-updates -v --verbose $nOpts $qOpts $pOpts \ --no-ignore" ;; switch|sw) cmdOpts="--relocate $rOpts $nOpts $qOpts $pOpts --diff3-cmd" ;; update|up) cmdOpts="$rOpts $nOpts $qOpts $pOpts --diff3-cmd" ;; *) ;; esac cmdOpts="$cmdOpts --help -h --config-dir" # take out options already given for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do opt=${COMP_WORDS[$i]} case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives and mutually exclusives case $optBase in -v) cmdOpts=${cmdOpts/ --verbose / } ;; --verbose) cmdOpts=${cmdOpts/ -v / } ;; -N) cmdOpts=${cmdOpts/ --non-recursive / } ;; --non-recursive) cmdOpts=${cmdOpts/ -N / } ;; -R) cmdOpts=${cmdOpts/ --recursive / } ;; --recursive) cmdOpts=${cmdOpts/ -R / } ;; -x) cmdOpts=${cmdOpts/ --extensions / } ;; --extensions) cmdOpts=${cmdOpts/ -x / } ;; -q) cmdOpts=${cmdOpts/ --quiet / } ;; --quiet) cmdOpts=${cmdOpts/ -q / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -r) cmdOpts=${cmdOpts/ --revision / } ;; --revision) cmdOpts=${cmdOpts/ -r / } ;; --auto-props) cmdOpts=${cmdOpts/ --no-auto-props / } ;; --no-auto-props) cmdOpts=${cmdOpts/ --auto-props / } ;; -m|--message|-F|--file) cmdOpts=${cmdOpts/ --message / } cmdOpts=${cmdOpts/ -m / } cmdOpts=${cmdOpts/ --file / } cmdOpts=${cmdOpts/ -F / } ;; esac # skip next option if this one requires a parameter if [[ $opt == @($optsParam) ]] ; then ((++i)) fi done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } complete -F _svk -o default svk =======++=== END CUT ===++======= -- System Information: Debian Release: 3.1 APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.12-rc3-desktop-1 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=ISO-8859-1) (ignored: LC_ALL set to en_US) Versions of packages svk depends on: ii libalgorithm-annotate-perl 0.10-1 represent a series of changes in a ii libalgorithm-diff-perl 1.19.01-1 a perl library for finding Longest ii libclass-autouse-perl 1.17-1 Defer loading ( 'use'ing ) of a cl ii libclone-perl 0.15-1 recursively copy Perl datatypes ii libcompress-zlib-perl 1.34-1 Perl module for creation and manip ii libdata-hierarchy-perl 0.21-1 Handle data in a hierarchical stru ii libfile-type-perl 0.22-1 determine file type using magic st ii libfreezethaw-perl 0.43-2 converting Perl structures to stri ii libio-digest-perl 0.10-1 Calculate digests while reading or ii libio-string-perl 1.05-1 Emulate IO::File interface for in- ii liblocale-maketext-lexicon-pe 0.49-1 Lexicon-handling backends for "Loc ii liblocale-maketext-simple-per 0.12-2 Simple interface to Locale::Makete ii libperlio-eol-perl 0.13-1 PerlIO layer for normalizing line ii libperlio-via-dynamic-perl 0.11-1 dynamic PerlIO layers ii libperlio-via-symlink-perl 0.03-1 PerlIO layers for create symlinks ii libpod-simple-perl 3.02-2 Perl framework for parsing files i ii libregexp-shellish-perl 0.93-1 Shell-like regular expressions ii libsvn-core-perl 1.1.4-1 perl bindings for Subversion (aka. ii libsvn-mirror-perl 0.57-1 A subversion repository mirroring ii libsvn-simple-perl 0.27-1 A simple interface for writing a d ii libtext-diff-perl 0.35-2 Perform diffs on files and record ii libtimedate-perl 1.1600-4 Time and date functions for Perl ii libyaml-perl 0.38-2 YAML Ain't Markup Language (tm) ii perl 5.8.4-8 Larry Wall's Practical Extraction -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]