From cd4e617bfd289ddcc4fa1f55b3cbfdceb5100fd1 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Wed, 19 Dec 2001 15:07:29 +0000 Subject: new ifconfig completion (16366) --- Completion/Unix/Command/_ifconfig | 82 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Completion/Unix/Command/_ifconfig (limited to 'Completion/Unix/Command/_ifconfig') diff --git a/Completion/Unix/Command/_ifconfig b/Completion/Unix/Command/_ifconfig new file mode 100644 index 000000000..efd6e7707 --- /dev/null +++ b/Completion/Unix/Command/_ifconfig @@ -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 -- cgit 1.4.1