mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-26 18:01:03 +02:00
new ifconfig completion (16366)
This commit is contained in:
parent
b9f675c0e0
commit
cd4e617bfd
5 changed files with 112 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2001-12-19 Oliver Kiddle <opk@zsh.org>
|
||||
|
||||
* 16366: Completion/Unix/Type/_net_interfaces,
|
||||
Completion/Unix/Command/_ifconfig, Completion/Unix/Type/.distfiles,
|
||||
Completion/Unix/Command/.distfiles: new ifconfig completion
|
||||
|
||||
2001-12-18 Oliver Kiddle <opk@zsh.org>
|
||||
|
||||
* 16364: Src/params.c: further to 16351, except specials
|
||||
|
|
|
@ -15,5 +15,5 @@ _dd _gprof _lynx _perldoc _telnet _pine
|
|||
_dict _grep _lzop _prcs _tiff _elm
|
||||
_diff _gs _make _psutils _tin _apm _mail
|
||||
_last _loadkeys _modutils _ruby _sysctl _links _samba
|
||||
_user_admin _rsync _arping _spamassassin _mtools
|
||||
_user_admin _rsync _arping _spamassassin _mtools _ifconfig
|
||||
'
|
||||
|
|
82
Completion/Unix/Command/_ifconfig
Normal file
82
Completion/Unix/Command/_ifconfig
Normal file
|
@ -0,0 +1,82 @@
|
|||
#compdef ifconfig
|
||||
|
||||
local context state line ret=1
|
||||
local -a opts args alias debug updownlist
|
||||
|
||||
alias=( '(-alias alias)'{,-}'alias[remove or establish alternate address for if]' )
|
||||
debug=( '(-debug debug)'{,-}'debug[disable or enable debugging code]' )
|
||||
updownlist=(
|
||||
'(-a -d -C)-u[restrict to interfaces which are up]'
|
||||
'(-a -u -C)-d[restrict to interfaces which are down]'
|
||||
'(-a -C -m -L 1 *)-l[list interfaces]'
|
||||
)
|
||||
|
||||
case $OSTYPE in
|
||||
darwin*)
|
||||
args=( -s $updownlist )
|
||||
opts=(
|
||||
$alias $debug delete dest_address ipdst nsellength
|
||||
{,-}trailers {,-}link{0,1,2}
|
||||
)
|
||||
;;
|
||||
freebsd*)
|
||||
args=( -s $updown
|
||||
'(-a -l -u -d -m -L 1 *)-C[list interface cloners]'
|
||||
'(-l -C)-m[list supported media]'
|
||||
'(-l -C)-L[show address lifetime as time offset]'
|
||||
)
|
||||
opts=( $alias $debug
|
||||
anycast lladdr media {,-}mediaopt {,delete}tunnel create destroy
|
||||
{,un}plumb vlan {,-}vlandev metric prefixlen range phase ssid muid
|
||||
stationname channel authmode {,-}powersave powersavesleep wepmode
|
||||
{,-}wep {,-}nwkey add delete ether {,-}link{0,1,2}
|
||||
)
|
||||
;;
|
||||
irix5*) opts=( $debug ) ;;
|
||||
irix6*)
|
||||
opts=( $debug {-,}highbw {,-}link{0,1,2} primary rspace sspace )
|
||||
args=( '-w[display additional information]' )
|
||||
;;
|
||||
linux*)
|
||||
opts=(
|
||||
'(-promisc promisc)'{,-}'promisc[disable or enable promiscuous mode]'
|
||||
'(-allmulti allmulti)'{,-}'allmulti[disable or enable all-multicast]'
|
||||
'media[set physical port type]:medium type:(auto 10base2 10baseT AUI)'
|
||||
'hw[set hardware class]:hardware class:(ether ax25 ARCnet netrom)'
|
||||
add del dstaddr io_addr irq mem_start multicast pointopoint
|
||||
tunnel txqueuelen
|
||||
)
|
||||
;;
|
||||
solaris*)
|
||||
args=(
|
||||
'-ad[apply to all down interfaces]'
|
||||
'-adD[apply to all down interfaces not controlled by DHCP]'
|
||||
'-au[apply to all up interfaces]'
|
||||
'-auD[apply to all up interfaces not controlled by DHCP]'
|
||||
)
|
||||
opts=(
|
||||
'auto-revarp[use RARP to acquire address]'
|
||||
{,-}trailers {,-}private {,un}plumb
|
||||
'(dhcp auto-dhcp)'{,auto-}'dhcp[use dhcp]'
|
||||
primary wait drop extend ping release start status
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
_arguments "$args[@]" \
|
||||
'-a[apply to all interfaces]' \
|
||||
'1:network interface:_net_interfaces' \
|
||||
'::address family:(atalk ether inet inet6 ax25 ddp ipx netrom)' \
|
||||
'*:option:->options' && ret=0
|
||||
|
||||
[[ -n "$state" ]] && _values -S ' ' -w 'option' "$opts[@]" \
|
||||
'(down)up[activate interface]' \
|
||||
'(up)down[shut down interface]' \
|
||||
'(-arp arp)'{,-}'arp[disable or enable address resolution protocol]' \
|
||||
'metric[set routing metric for interface]:routing metric' \
|
||||
'mtu[set maximum transfer unit]:mtu' \
|
||||
'netmask[specify network mask]:netmask' \
|
||||
'broadcast[specify broadcast address]:broadcast address' \
|
||||
'address[specify IP address of interface]:IP address' && ret=0
|
||||
|
||||
return ret
|
|
@ -8,5 +8,5 @@ _domains _path_files _ps _user_at_host
|
|||
_files _pdf _pspdf _users
|
||||
_groups _perl_basepods _signals _users_on
|
||||
_hosts _perl_builtin_funcs _tar_archive _time_zone
|
||||
_file_systems
|
||||
_file_systems _net_interfaces
|
||||
'
|
||||
|
|
22
Completion/Unix/Type/_net_interfaces
Normal file
22
Completion/Unix/Type/_net_interfaces
Normal file
|
@ -0,0 +1,22 @@
|
|||
#autoload
|
||||
|
||||
local expl list intf sep
|
||||
local -a disp
|
||||
|
||||
case $OSTYPE in
|
||||
aix*)
|
||||
intf=( ${(f)"$(lsdev -C -c if -F 'name:description')"} )
|
||||
if zstyle -T ":completion:${curcontext}" verbose; then
|
||||
zstyle -s ":completion:${curcontext}:" list-separator sep || sep=--
|
||||
zformat -a list " $sep " "$intf[@]"
|
||||
disp=(-ld list)
|
||||
fi
|
||||
;;
|
||||
darwin*|freebsd*) intf=( $(ifconfig -l) ) ;;
|
||||
irix*) intf=( ${${${(f)"$(/usr/etc/netstat -i)"}%% *}[2,-1]} ) ;;
|
||||
linux*) intf=( /proc/sys/net/ipv4/conf/*~*(all|default)(N:t) ) ;;
|
||||
*) intf=( $(ifconfig -a|sed -n 's/^\([^ :]*\).*/\1/p') ) ;;
|
||||
esac
|
||||
|
||||
_wanted interfaces expl 'network interface' \
|
||||
compadd "$@" "$disp[@]" - "${(@)intf%%:*}"
|
Loading…
Reference in a new issue