components/zsh/Completion/Solaris/Command/_ipadm
author Danek Duvall <danek.duvall@oracle.com>
Wed, 31 Aug 2011 15:30:47 -0700
changeset 510 53bd319b010e
parent 429 02007d525e89
child 837 3496f33edfbb
permissions -rw-r--r--
7085700 miscellaneous completion fixes: _svcs_fmri, _dtrace, _pkg5, _zoneadm 7085734 shell/zsh should set overlay=allow on editable configuration files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
429
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
#compdef ipadm
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
# Synced with the Nevada build 171 man page
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
_ipadm_ifs() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
	local -a extra
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     7
	zparseopts -D -E -a extra /+:
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     9
	compadd "$@" - $(ipadm show-if -p -o ifname) $extra[2,-1]
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    10
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
_ipadm_enabled_ifs() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
	# Interfaces not marked "disabled"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
	compadd "$@" - "${(@)${(@)${(f)$(ipadm show-if -p -o state,ifname)}:#disabled:*}#*:}"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
_ipadm_disabled_ifs() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
	compadd "$@" - "${(@)${(@)${(f)$(ipadm show-if -p -o state,ifname)}#disabled:*}:#*:*}"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
_ipadm_vnis() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
	compadd "$@" - "${(@)${(@)${(f)$(ipadm show-if -p -o class,ifname)}#vni:*}:#*:*}"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
_ipadm_ipmps() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
	compadd "$@" - "${(@)${(@)${(f)$(ipadm show-if -p -o class,ifname)}#ipmp:*}:#*:*}"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
_ipadm_get_possible_values() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
	local -a proto poss
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
	local cmd
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33
	cmd=${${(M)words:#set-*}/set/show}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    34
	if [[ $cmd == "show-prop" ]]; then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    35
		# You have to specify a protocol for show-prop if you specify a
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    36
		# property, so we loop through them all.
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    37
		poss=()
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    38
		for proto in ipv4 ipv6 icmp tcp udp sctp; do
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    39
			poss=( $poss ${(u)=$(ipadm $cmd -c -p ${IPREFIX%=} -o possible $proto 2> /dev/null)//,/ } )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    40
		done
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    41
		poss=( ${(u)poss:#\?} )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    42
	else
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    43
		proto=${=opt_args[-m]:+-m $opt_args[-m]}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    44
		poss=( ${(u)=$(ipadm $cmd -c -p ${IPREFIX%=} $proto -o possible)//,/ } )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    45
	fi
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    46
	if [[ $poss[1] == [0-9]##-[0-9]## ]]; then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    47
		if (( $#poss > 1 )); then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    48
			_message -e "number in ranges ${(j:, :)poss}"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    49
		else
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    50
			_message -e "number in range $poss"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    51
		fi
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    52
	elif [[ -z $poss[1] ]]; then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    53
		_message -e "value"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    54
	else
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    55
		compadd "$@" - $poss
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    56
	fi
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    57
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    58
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    59
_ipadm_addrobjs() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    60
	compadd "$@" - $(ipadm show-addr -p -o addrobj)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    61
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    62
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    63
_ipadm_protos() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    64
	compadd "$@" - $(ipadm show-prop -c -o proto)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    65
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    66
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    67
_ipadm() {
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    68
	local context state line expl
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    69
	local -A opt_args
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    70
	local -a subcmds
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    71
	local -a if_properties if_propproperties if_properties2
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    72
	local -a addr_properties addr_propproperties
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    73
	local -a addrobj_properties
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    74
	local -a proto_ipv4_properties proto_ipv6_properties proto_tcp_properties
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    75
	local -a proto_udp_properties proto_sctp_properties proto_icmp_properties
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    76
	local -a proto_all_properties proto_propproperties
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    77
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    78
	subcmds=(
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    79
		{"show","disable","enable"}"-if"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    80
		{"create","delete"}"-ip"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    81
		{"create","delete"}"-vni"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    82
		{"create","delete","add","remove"}"-ipmp"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    83
		{"set","reset","show"}"-ifprop"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    84
		{"create","delete","show","up","down","refresh","disable","enable"}"-addr"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    85
		{"set","reset","show"}"-addrprop"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    86
		{"set","reset","show"}"-prop"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    87
	)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    88
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    89
	if_properties=( "ifname" "class" "state" "active" "current" "persistent" "over" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    90
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    91
	if_propproperties=( "ifname" "property" "proto" "perm" "current" "persistent" "default" "possible" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    92
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    93
	if_properties2=(
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    94
		"arp:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    95
		"forwarding:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    96
		"metric:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    97
		"mtu:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    98
		"nud:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    99
		"usesrc:value:_ipadm_ifs -/ none"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   100
		"exchange_routes:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   101
		"group:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   102
		"standby:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   103
	)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   104
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   105
	addr_properties=(
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   106
		"broadcast:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   107
		"deprecated:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   108
		"prefixlen:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   109
		"private:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   110
		"reqhost:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   111
		"transmit:value:_ipadm_get_possible_values"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   112
		"zone:value:_zones -t c"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   113
	)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   114
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   115
	addr_propproperties=( "addrobj" "property" "perm" "current" "persistent" "default" "possible" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   116
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   117
	addrobj_properties=(
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   118
		"addrobj" "type" "state" "current" "persistent" "addr"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   119
		"cid-type" "cid-value" "begin" "expire" "renew"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   120
	)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   121
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   122
	proto_ipv4_properties=( "hostmodel" "ttl" "forwarding" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   123
	proto_ipv6_properties=( "hostmodel" "hoplimit" "forwarding" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   124
	proto_tcp_properties=( "cong_default" "cong_enabled" "ecn" "extra_priv_ports" "max_buf" "recv_buf"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   125
		"send_buf" "sack" "smallest_anon_port" "largest_anon_port" "smallest_nonpriv_port" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   126
	proto_udp_properties=( "extra_priv_ports" "max_buf" "recv_buf" "send_buf" "smallest_anon_port"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   127
		"largest_anon_port" "smallest_nonpriv_port" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   128
	proto_sctp_properties=( "cong_default" "cong_enabled" "extra_priv_ports" "max_buf" "recv_buf"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   129
		"send_buf" "smallest_anon_port" "largest_anon_port" "smallest_nonpriv_port" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   130
	proto_icmp_properties=( "max_buf" "recv_buf" "send_buf" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   131
	proto_all_properties=( $proto_ipv4_properties $proto_ipv6_properties $proto_tcp_properties
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   132
		$proto_udp_properties $proto_sctp_properties $proto_icmp_properties )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   133
	proto_all_properties=( $^proto_all_properties:value:_ipadm_get_possible_values )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   134
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   135
	proto_propproperties=( "proto" "property" "perm" "current" "persistent" "default" "possible" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   136
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   137
	if [[ $service == "ipadm" ]]; then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   138
		_arguments -C -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   139
			'-\?[Help]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   140
			'*::command:->subcmd' && return 0
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   141
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   142
		if (( CURRENT == 1 )); then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   143
			_wanted commands expl "ipadm subcommand" compadd -a subcmds
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   144
			return
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   145
		fi
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   146
		service="$words[1]"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   147
		curcontext="${curcontext%:*}=$service:"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   148
	fi
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   149
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   150
	case $service in
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   151
	("create-ip")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   152
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   153
			'(-t --temporary)'{-t,--temporary}'[Interface should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   154
			':interface name:'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   155
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   156
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   157
	("delete-ip")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   158
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   159
			':interface name:_ipadm_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   160
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   161
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   162
	("create-vni")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   163
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   164
			'(-t --temporary)'{-t,--temporary}'[Interface should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   165
			':VNI name:'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   166
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   167
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   168
	("delete-vni")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   169
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   170
			':VNI name:_ipadm_vnis'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   171
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   172
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   173
	("create-ipmp")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   174
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   175
			'(-t --temporary)'{-t,--temporary}'[Interface should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   176
			'(-i --interface)'{-i,--interface}'[List of underlying interfaces]:interface name:_values -s , "interface" $(ipadm show-if -p -o ifname)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   177
			':IPMP interface name:'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   178
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   179
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   180
	("delete-ipmp")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   181
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   182
			'(-f --force)'{-f,--force}'[First remove all underlying interfaces from group]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   183
			':IPMP interface name:_ipadm_ipmps'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   184
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   185
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   186
	("add-ipmp")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   187
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   188
			'(-t --temporary)'{-t,--temporary}'[Interface should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   189
			'(-i --interface)'{-i,--interface}'[List of underlying interfaces]:interface name:_values -s , "interface" $(ipadm show-if -p -o ifname)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   190
			':IPMP interface name:_ipadm_ipmps'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   191
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   192
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   193
	("remove-ipmp")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   194
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   195
			'(-t --temporary)'{-t,--temporary}'[Interface should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   196
			'(-i --interface)'{-i,--interface}'[List of underlying interfaces]:interface name:_values -s , "interface" $(ipadm show-if -p -o ifname)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   197
			':IPMP interface name:_ipadm_ipmps'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   198
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   199
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   200
	("show-if")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   201
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   202
			'(-p --parseable)'{-p,--parseable}'[Parseable output]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   203
			'(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $if_properties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   204
			':interface name:_ipadm_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   205
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   206
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   207
	("disable-if")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   208
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   209
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   210
			':interface name:_ipadm_enabled_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   211
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   212
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   213
	("enable-if")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   214
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   215
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   216
			':interface name:_ipadm_disabled_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   217
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   218
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   219
	("set-ifprop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   220
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   221
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   222
			'(-m --module)'{-m,--module}'[Protocol]:protocol:(ipv4 ipv6)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   223
			'(-p --prop)'{-p,--prop}'[Property to set]:property:_values -s , "property" $if_properties2' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   224
			':interface name:_ipadm_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   225
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   226
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   227
	("reset-ifprop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   228
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   229
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   230
			'(-m --module)'{-m,--module}'[Protocol]:protocol:(ipv4 ipv6)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   231
			'(-p --prop)'{-p,--prop}'[Property to reset]:property:($if_properties2)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   232
			':interface name:_ipadm_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   233
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   234
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   235
	("show-ifprop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   236
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   237
			'(-c --parseable)'{-c,--parseable}'[Parseable output]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   238
			'(-m --module)'{-m,--module}'[Protocol]:protocol:(ipv4 ipv6)' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   239
			'(-o --output)'{-o,--output}'[Property properties to display]:property:_values -s , "property" $if_propproperties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   240
			'(-p --prop)'{-p,--prop}'[Interface properties to display]:property:_values -s , "property" ${if_properties2%%\:*}' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   241
			':interface name:_ipadm_ifs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   242
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   243
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   244
	("create-addr")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   245
		# This causes all options and arguments following -T to be
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   246
		# stuck into $opt_args[-T].  It feels hacky, but it seems
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   247
		# to do the trick.
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   248
		_arguments -C -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   249
			'(-t --temporary)'{-t,--temporary}'[Address should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   250
			'-T[Address type]:*::address type:->newaddr'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   251
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   252
		if [[ $state == "newaddr" ]]; then
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   253
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   254
			case ${opt_args[-T]#-T:} in
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   255
			("static:"*)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   256
				local -a addrthingsv4
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   257
				addrthingsv4=( "local:address: " "remote:address: ")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   258
				_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   259
				'(-d --down)'{-d,--down}'[Address should be marked down]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   260
				'(-a --address)'{-a,--address}'[Address specification]:address:_values -s , "address" $addrthingsv4' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   261
				':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   262
				;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   263
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   264
			("dhcp:"*)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   265
				_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   266
				'(-w --wait)'{-w,--wait}'[Seconds to wait for completion]:number or "forever":{if [[ -prefix [0-9]## ]]; then _message -e "number of seconds"; else _wanted forever expl "number or \"forever\"" compadd forever; fi}' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   267
				'-h[Request a specific hostname]:hostname:' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   268
				':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   269
				;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   270
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   271
			("addrconf:"*)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   272
				local -a addrthingsv6 statefulness
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   273
				addrthingsv6=( "local:interface id: " "remote:interface id: ")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   274
				statefulness=( "stateful:statefulness:(yes no)" "stateless:statelessness:(yes no)" )
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   275
				_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   276
				'(-i --interface-id)'{-i,--interface-id}'[Interface ID]:address:_values -s , "interface id" $addrthingsv6' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   277
				'(-p --prop)'{-p,--prop}'[Statefulness configuration]:statefulness configuration:_values -s , "statefulness" $statefulness' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   278
				':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   279
				;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   280
			(*)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   281
				_wanted commands expl "address type" compadd static dhcp addrconf
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   282
				;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   283
			esac
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   284
		fi
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   285
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   286
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   287
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   288
	("delete-addr")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   289
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   290
			'(-r --release)'{-r,--release}'[Release DHCP-acquired address]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   291
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   292
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   293
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   294
	("show-addr")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   295
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   296
			'(-d --dhcp -p --parseable)'{-d,--dhcp}'[Display DHCP status fields]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   297
			'(-p --parseable -d --dhcp)'{-p,--parseable}'[Parseable output]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   298
			'(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $addrobj_properties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   299
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   300
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   301
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   302
	({"up","down","disable","enable"}"-addr")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   303
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   304
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   305
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   306
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   307
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   308
	("refresh-addr")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   309
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   310
			'(-i --inform)'{-i,--inform}'[Retrieve DHCP parameters]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   311
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   312
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   313
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   314
	("set-addrprop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   315
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   316
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   317
			'(-p --prop)'{-p,--prop}'[Property to set]:property:_values -s , "property" $addr_properties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   318
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   319
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   320
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   321
	("reset-addrprop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   322
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   323
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   324
			'(-p --prop)'{-p,--prop}'[Property to reset]:property:(${addr_properties%%\:*})' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   325
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   326
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   327
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   328
	("show-addrprop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   329
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   330
			'(-c --parseable)'{-c,--parseable}'[Parseable output]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   331
			'(-o --output)'{-o,--output}'[Property properties to display]:property:_values -s , "property" $addr_propproperties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   332
			'(-p --prop)'{-p,--prop}'[Address object properties to display]:property:_values -s , "property" ${addr_properties%%\:*}' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   333
			':address object name:_ipadm_addrobjs'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   334
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   335
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   336
	("set-prop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   337
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   338
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   339
			'(-p --prop)'{-p,--prop}'[Property to set]:property:_values -s , "property" $proto_all_properties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   340
			':protocol name:_ipadm_protos'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   341
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   342
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   343
	("reset-prop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   344
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   345
			'(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   346
			'(-p --prop)'{-p,--prop}'[Property to reset]:property:(${proto_all_properties%%\:*})' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   347
			':protocol name:_ipadm_protos'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   348
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   349
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   350
	("show-prop")
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   351
		_arguments -A "-*" \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   352
			'(-c --parseable)'{-c,--parseable}'[Parseable output]' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   353
			'(-o --output)'{-o,--output}'[Property properties to display]:property:_values -s , "property" $proto_propproperties' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   354
			'(-p --prop)'{-p,--prop}'[Protocol properties to display]:property:_values -s , "property" ${proto_all_properties%%\:*}' \
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   355
			':protocol name:_ipadm_protos'
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   356
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   357
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   358
	(*)
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   359
		_message "unknown ipadm subcommand: $service"
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   360
		;;
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   361
	esac
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   362
}
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   363
02007d525e89 7021213 zsh completion for ipadm
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   364
_ipadm "$@"