# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- # ex: ts=8 sw=8 noet filetype=sh # # bash completion for net tools have mii-tool && _mii_tool() { local cur prev split=false COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} _split_longopt && split=true case $prev in -F|--force) COMPREPLY=( $( compgen -W '100baseTx-FD 100baseTx-HD \ 10baseT-FD 10baseT-HD' -- $cur ) ) return 0 ;; -A|--advertise) COMPREPLY=( $( compgen -W '100baseT4 100baseTx-FD 100baseTx-HD \ 10baseT-FD 10baseT-HD' -- $cur ) ) return 0 ;; esac $split && return 0 if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-v --verbose -V --version -R \ --reset -r --restart -w --watch -l --log -A \ --advertise -F --force' -- $cur ) ) else _available_interfaces -a fi } && complete -F _mii_tool $default mii-tool have mii-diag && _mii_diag() { local cur prev split=false COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} _split_longopt && split=true case $prev in -@(F|A|-advertise|-fixed-speed)) COMPREPLY=( $( compgen -W '100baseT4 100baseTx \ 100baseTx-FD 100baseTx-HD 10baseT 10baseT-FD \ 10baseT-HD' -- $cur ) ) return 0 ;; esac $split && return 0 if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-A --advertise -F --fixed-speed -a \ --all-interfaces -s --status -D --debug -g \ --read-parameters -G --set-parameters -M --msg-level \ -p --phy -r --restart -R --reset -v -V -w --watch \ -? --help' -- $cur ) ) else _available_interfaces -a fi } && complete -F _mii_diag $default mii-diag # Linux route(8) completion # [ $UNAME = Linux ] && _route() { local cur prev COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} if [ "$prev" = dev ]; then COMPREPLY=( $( ifconfig -a | sed -ne 's|^\('$cur'[^ ]*\).*$|\1|p' )) return 0 fi COMPREPLY=( $( compgen -W 'add del -host -net netmask metric mss \ window irtt reject mod dyn reinstate dev \ default gw' -- $cur ) ) COMPREPLY=( $( echo " ${COMP_WORDS[@]}" | \ (while read -d ' ' i; do [ "$i" == "" ] && continue # flatten array with spaces on either side, # otherwise we cannot grep on word # boundaries of first and last word COMPREPLY=" ${COMPREPLY[@]} " # remove word from list of completions COMPREPLY=( ${COMPREPLY/ $i / } ) done echo "${COMPREPLY[@]}") ) ) return 0 } [ $UNAME = Linux ] && complete -F _route route