diff options
author | Axel Beckert <abe@deuxchevaux.org> | 2012-07-22 21:40:10 +0200 |
---|---|---|
committer | Axel Beckert <abe@deuxchevaux.org> | 2012-07-22 21:40:10 +0200 |
commit | 5c7ac461932c17df91374e6c2740ad22c95481af (patch) | |
tree | 85d21004331d9d1bfca266d111000acd7fa1725a /Completion/Solaris/Command/_flowadm | |
parent | 3988419a8dc4a74e491df584804a77a2f8be88cd (diff) | |
parent | e27142d45686cacc6ed155e5045b97dd6243d44c (diff) | |
download | zsh-5c7ac461932c17df91374e6c2740ad22c95481af.tar.gz zsh-5c7ac461932c17df91374e6c2740ad22c95481af.zip |
New upstream release
Diffstat (limited to 'Completion/Solaris/Command/_flowadm')
-rw-r--r-- | Completion/Solaris/Command/_flowadm | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/Completion/Solaris/Command/_flowadm b/Completion/Solaris/Command/_flowadm new file mode 100644 index 000000000..53a9f2210 --- /dev/null +++ b/Completion/Solaris/Command/_flowadm @@ -0,0 +1,115 @@ +#compdef flowadm +# Synced with the S11U1 build 19 man page + +_flowadm() { + +local -a subcmds tr props +local expl + +_flowadm_flow(){ + compadd "$@" - $(flowadm show-flow -p -o flow) +} + +_flowadm_flow_int(){ + compadd "$@" - $(flowadm show-flow -p -o flow) + compadd "$@" - $(dladm show-phys -p -o device) +} + +subcmds=( + "help" + "show-flow" + "add-flow" + "remove-flow" + "set-flowprop" + "reset-flowprop" + "show-flowprop" +) + +tr=( + "tcp" + "udp" + "sctp" + "icmp" + "icmpv6" +) + +props=( + "maxbw" +) + +if [[ $service == "flowadm" ]]; then + _arguments -C -A "-*" \ + '*::command:->subcmd' && return 0 + + if (( CURRENT == 1 )); then + _wanted commands expl "flowadm subcommand" compadd -a subcmds + return + fi + service="$words[1]" + curcontext="${curcontext%:*}=$service:" +fi +case $service in + + ("help") + _arguments ':subcommand:($subcmds)' + ;; + + ("show-flow") + _arguments -A "-*" \ + '-o[specify field to display]:field:(flow link ipaddr proto port dsfield)' \ + '-p[parsable output]' \ + '-P[persistent flow property information]' \ + - set1 \ + '-l[display information for link]:link or flow:_net_interfaces' \ + - set2 \ + ':flow:_flowadm_flow' \ + ;; + + ("add-flow") + _arguments -A "-*" \ + '-t[temporary changes - do not persist across reboots]' \ + '-R[alternate root dir]:alternate root:_files' \ + '-l[specify link to which flow will be added]:link:_net_interfaces' \ + '-a[specify attribute]:attribute:(local_ip= remote_ip= transport=$tr local_port= dsfield=)' \ + '-p[set property value]:property:(maxbw=)' \ + ;; + + ("remove-flow") + _arguments -A "-*" \ + '-t[temporary changes - do not persist across reboots]' \ + '-R[alternate root dir]:alternate root:_files' \ + - set1 \ + '-l[specify link from which flow will be deleted]:link:_net_interfaces' \ + - set2 \ + ':flow:_flowadm_flow' \ + ;; + + ("set-flowprop") + _arguments -A "-*" \ + '-t[temporary changes - do not persist across reboots]' \ + '-R[alternate root dir]:alternate root:_files' \ + '-p[set property value]:property:(maxbw=)' \ + ':flow:_flowadm_flow' \ + ;; + + ("reset-flowprop") + _arguments -A "-*" \ + '-t[temporary changes - do not persist across reboots]' \ + '-R[alternate root dir]:alternate root:_files' \ + '-p[set property value]:property:(maxbw=)' \ + ':flow:_flowadm_flow' \ + ;; + + ("show-flowprop") + _arguments -A "-*" \ + '-c[parsable output (requires -o)]' \ + '-l[specify link whose properties will be shown]:link:_net_interfaces' \ + '-P[persistent flow property information]' \ + '-p[property to show]:property:_values -s , "property" $props' \ + ':flow:_flowadm_flow' \ + ;; + +esac +} + +_flowadm "$@" |