diff options
author | David Paleino <d.paleino@gmail.com> | 2009-02-17 09:06:41 +0100 |
---|---|---|
committer | David Paleino <d.paleino@gmail.com> | 2009-02-17 09:06:41 +0100 |
commit | e1777b0613b72df5728d920342aaafe78954d2d2 (patch) | |
tree | fabfbf68e3eaff105100c27a0beaffb73a78f0af /contrib | |
parent | c272d1fbb054891cf16128086a48501232bad63a (diff) | |
parent | 05d1c4ab9980d7434031a1ba770794bc8cb66efe (diff) | |
download | bash-completion-dev-utils.tar.gz |
Merge branch 'master' into dev-utilsdev-utils
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/brctl | 2 | ||||
-rw-r--r-- | contrib/hg | 135 | ||||
-rw-r--r-- | contrib/rdesktop | 53 |
3 files changed, 54 insertions, 136 deletions
diff --git a/contrib/brctl b/contrib/brctl index 6fd7b6e5..1ecdc127 100644 --- a/contrib/brctl +++ b/contrib/brctl @@ -1,7 +1,7 @@ # -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- # ex: ts=8 sw=8 noet filetype=sh # -# bash completion for brtcl +# bash completion for brctl have brctl && _brctl() diff --git a/contrib/hg b/contrib/hg deleted file mode 100644 index c053aa22..00000000 --- a/contrib/hg +++ /dev/null @@ -1,135 +0,0 @@ -# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- -# ex: ts=8 sw=8 noet filetype=sh -# -# Mercurial completion by Alexis S. L. Carvalho <alexis@cecm.usp.br> -# -# See: http://www.selenic.com/pipermail/mercurial/2005-August/003378.html - -_hg_commands() -{ - local commands="$(hg -v help | sed -e '1,/^list of commands:/d' \ - -e '/^global options:/Q' \ - -e '/^ [^ ]/!d; s/[,:]//g;')" - - # hide debug commands from users, but complete them if - # specifically asked for - if [[ "$cur" == de* ]]; then - commands="$commands debugcheckstate debugstate debugindex" - commands="$commands debugindexdot debugwalk" - fi - COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$commands" -- "$cur") ) -} - -_hg_paths() -{ - local paths="$(hg paths | sed -e 's/ = .*$//')" - COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$paths" -- "$cur" )) -} - -_hg_tags() -{ - local tags="$(hg tags | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')" - COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$tags" -- "$cur") ) -} - -# this is "kind of" ugly... -_hg_count_non_option() -{ - local i count=0 - local filters="$1" - - for (( i=1; $i<=$COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" != -* ]]; then - for f in $filters; do - if [[ ${COMP_WORDS[i-1]} == $f ]]; then - continue 2 - fi - done - count=$(($count + 1)) - fi - done - - echo $(($count - 1)) -} - -_hg() -{ - local cur prev cmd opts i - - COMPREPLY=() - cur="$2" - prev="$3" - - # searching for the command - # (first non-option argument that doesn't follow -R/--repository) - for (( i=1; $i<=$COMP_CWORD; i++ )); do - if [[ ${COMP_WORDS[i]} != -* ]] \ - && [ "${COMP_WORDS[i-1]}" != -R ] \ - && [ "${COMP_WORDS[i-1]}" != --repository ]; then - cmd="${COMP_WORDS[i]}" - break - fi - done - - if [[ "$cur" == -* ]]; then - opts="$(hg -v help | sed -e '1,/^global options/d; /^ -/!d')" - - if [ -n "$cmd" ]; then - opts="$opts $(hg help "$cmd" | sed -e '/^ -/!d; s/ [^-][^ ]*//')" - fi - - COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$opts" -- "$cur") ) - return - fi - - if [ "$prev" = -R ] || [ "$prev" = --repository ]; then - COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" )) - return - fi - - if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then - _hg_commands - return - fi - - if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then - _hg_tags - return - fi - - case "$cmd" in - help) - _hg_commands - ;; - export|manifest|update|checkout|up|co) - _hg_tags - ;; - pull|push) - _hg_paths - COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" )) - ;; - paths) - _hg_paths - ;; - clone) - local count=$(_hg_count_non_option) - if [ $count = 1 ]; then - _hg_paths - fi - COMPREPLY=(${COMPREPLY[@]:-} $( compgen -d -- "$cur" )) - ;; - cat) - local count=$(_hg_count_non_option -o --output) - if [ $count = 2 ]; then - _hg_tags - else - COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" )) - fi - ;; - *) - COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" )) - ;; - esac - -} -complete -o filenames -F _hg hg diff --git a/contrib/rdesktop b/contrib/rdesktop new file mode 100644 index 00000000..ba941eec --- /dev/null +++ b/contrib/rdesktop @@ -0,0 +1,53 @@ +# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- +# ex: ts=8 sw=8 noet filetype=sh +# +# bash completion for rdesktop + +have rdesktop && +_rdesktop() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -k) + COMPREPLY=( $( command ls \ + /usr/share/rdesktop/keymaps 2>/dev/null | \ + egrep -v '(common|modifiers)' ) ) + COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \ + $HOME/.rdesktop/keymaps 2>/dev/null ) ) + COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \ + ./keymaps 2>/dev/null ) ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) ) + return 0 + ;; + -a) + COMPREPLY=( $( compgen -W '8 15 16 24' -- $cur ) ) + return 0 + ;; + -x) + COMPREPLY=( $( compgen -W 'b broadband m modem l lan' \ + -- $cur ) ) + return 0 + ;; + -r) + # FIXME: should do $nospace for the colon options + COMPREPLY=( $( compgen -W 'comport: disk: lptport: \ + printer: sound: lspci scard' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-u -d -s -c -p -n -k -g -f -b -L \ + -A -B -e -E -m -C -D -K -S -T -N -X -a -z -x -P -r \ + -0 -4 -5' -- $cur ) ) + else + _known_hosts + fi + +} && +complete -F _rdesktop rdesktop |