# 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

# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh
