mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
64 lines
1.7 KiB
Plaintext
64 lines
1.7 KiB
Plaintext
#compdef brctl
|
|
|
|
local curcontext="$curcontext" expl ret=1
|
|
local subcmd
|
|
|
|
if (( CURRENT == 2 )); then
|
|
_describe 'brctl command' '(
|
|
addbr:create\ instance\ of\ ethernet\ bridge
|
|
delbr:deletes\ specified\ bridge\ instance
|
|
show:show\ all\ current\ bridge\ instances
|
|
addif:add\ interface\ to\ bridge
|
|
delif:remove\ interface\ from\ bridge
|
|
showmacs:show\ a\ list\ of\ learned\ MAC\ addresses
|
|
setageing:set\ MAC\ address\ ageing\ time
|
|
setgcint:set\ grabage\ collection\ interval
|
|
stp:control\ use\ of\ spanning\ tree\ protocol
|
|
setbridgeprio:set\ bridge\ priority
|
|
setfd:set\ bridge\ forward\ delay
|
|
sethello:set\ bridge\ hello\ time
|
|
setmaxage:set\ maximum\ message\ age
|
|
setpathcost:set\ cost\ of\ port
|
|
setportprio:set\ priority\ of\ port
|
|
)' && ret=0
|
|
else
|
|
shift words
|
|
(( CURRENT-- ))
|
|
subcmd="$words[1]"
|
|
curcontext="${curcontext%:*}-${subcmd}:"
|
|
|
|
if (( CURRENT == 2 )); then
|
|
_wanted bridges expl 'bridge' compadd \
|
|
${${(f)"$(brctl show 2>/dev/null)"}[2,-1]%% *} && ret=0
|
|
elif (( CURRENT == 3 )); then
|
|
case $subcmd in
|
|
addif|delif)
|
|
_net_interfaces && ret=0
|
|
;;
|
|
setageing|setgcint|setfd|sethello|setmaxage)
|
|
_message -e time 'time (seconds)'
|
|
;;
|
|
setbridgeprio)
|
|
_message -e priority 'priority'
|
|
;;
|
|
setpathcost|setportprio)
|
|
_message -e ports 'port'
|
|
;;
|
|
stp)
|
|
_wanted states expl 'state' compadd on off && ret=0
|
|
;;
|
|
*)
|
|
_message 'unknown subcommand: $subcmd'
|
|
;;
|
|
esac
|
|
elif (( CURRENT == 4 )); then
|
|
if [[ $subcmd == setpathcost ]]; then
|
|
_message -e cost 'cost'
|
|
elif [[ $subcmd == setportprio ]]; then
|
|
_message -e priority 'priority'
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
return ret
|