summaryrefslogtreecommitdiffstats
path: root/Completion/Unix/Command/_ifconfig
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2005-05-30 09:46:57 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2005-05-30 09:46:57 +0000
commit887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af (patch)
tree7c8a991a8958c532be90de0664cc9c4a0a746b49 /Completion/Unix/Command/_ifconfig
parent21270: don't use poll() on Apple (diff)
downloadzsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.tar
zsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.tar.gz
zsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.tar.bz2
zsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.tar.lz
zsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.tar.xz
zsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.tar.zst
zsh-887cbbdbed140808f0ec0faf5f7e7ecd4eccb7af.zip
Joerg Sonnenberger: 21252: Dragonfly BSD support
Diffstat (limited to 'Completion/Unix/Command/_ifconfig')
-rw-r--r--Completion/Unix/Command/_ifconfig82
1 files changed, 82 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_ifconfig b/Completion/Unix/Command/_ifconfig
new file mode 100644
index 000000000..49b018841
--- /dev/null
+++ b/Completion/Unix/Command/_ifconfig
@@ -0,0 +1,82 @@
+#compdef ifconfig
+
+local curcontext="$curcontext" 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*|dragonfly*)
+ 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 -C "$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