132 lines
3.0 KiB
Plaintext
132 lines
3.0 KiB
Plaintext
|
# bash completion for net tools
|
||
|
|
||
|
have mii-tool &&
|
||
|
_mii_tool()
|
||
|
{
|
||
|
local cur prev split=false
|
||
|
|
||
|
COMPREPLY=()
|
||
|
_get_comp_words_by_ref cur prev
|
||
|
|
||
|
_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 '--verbose --version --reset --restart \
|
||
|
--watch --log --advertise --force' -- "$cur" ) )
|
||
|
else
|
||
|
_available_interfaces -a
|
||
|
fi
|
||
|
} &&
|
||
|
complete -F _mii_tool -o default mii-tool
|
||
|
|
||
|
have mii-diag &&
|
||
|
_mii_diag()
|
||
|
{
|
||
|
local cur prev split=false
|
||
|
|
||
|
COMPREPLY=()
|
||
|
_get_comp_words_by_ref cur prev
|
||
|
|
||
|
_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 '--advertise --fixed-speed --all-interfaces \
|
||
|
--status --debug --read-parameters --set-parameters --msg-level \
|
||
|
--phy --restart --reset --verbose --version --watch --help' \
|
||
|
-- "$cur" ) )
|
||
|
else
|
||
|
_available_interfaces -a
|
||
|
fi
|
||
|
} &&
|
||
|
complete -F _mii_diag -o default mii-diag
|
||
|
|
||
|
# Linux route(8) completion
|
||
|
#
|
||
|
[ $UNAME = Linux ] && have route &&
|
||
|
_route()
|
||
|
{
|
||
|
local cur prev
|
||
|
|
||
|
COMPREPLY=()
|
||
|
_get_comp_words_by_ref cur prev
|
||
|
|
||
|
if [ "$prev" = dev ]; then
|
||
|
_available_interfaces
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
# Remove already given options from completions
|
||
|
local i found
|
||
|
for opt in add del -host -net netmask metric mss window irtt reject mod \
|
||
|
dyn reinstate dev default gw; do
|
||
|
found=false
|
||
|
for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do
|
||
|
[ "${COMP_WORDS[i]}" = "$opt" ] && found=true && break
|
||
|
done
|
||
|
$found || COMPREPLY[${#COMPREPLY[@]}]="$opt"
|
||
|
done
|
||
|
|
||
|
COMPREPLY=( $( compgen -W '"${COMPREPLY[@]}"' -- "$cur" ) )
|
||
|
} &&
|
||
|
complete -F _route route
|
||
|
|
||
|
have ether-wake &&
|
||
|
_ether_wake()
|
||
|
{
|
||
|
COMPREPLY=()
|
||
|
local cur prev
|
||
|
_get_comp_words_by_ref -n : cur prev
|
||
|
|
||
|
case $prev in
|
||
|
-i)
|
||
|
_available_interfaces
|
||
|
return 0
|
||
|
;;
|
||
|
-p)
|
||
|
return 0
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
if [[ $cur == -* ]]; then
|
||
|
COMPREPLY=( $( compgen -W '-b -D -i -p -V' -- "$cur" ) )
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
_mac_addresses
|
||
|
} &&
|
||
|
complete -F _ether_wake ether-wake
|
||
|
|
||
|
# 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
|