about summary refs log tree commit diff
path: root/Completion/Unix/Command/_arp
blob: f340e979e8f793eaa4c7cb2211a0c596fe2dd5a8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#compdef arp

local state line expl curcontext="$curcontext" ret=1
local -a cmds

cmds=(-a --display -d --delete -s --set -f --file)

_arguments -C \
  "($cmds 1 -D --use-device)"{-a,--display}'[show entries for all or specified hosts]:host:->hostintable' \
  "($cmds 1 -n --numeric -D --use-device -H --hw-type)"{-d,--delete}'[delete entry from table]:host:->hostintable' \
  "($cmds 1 -n --numeric)"{-s,--set}'[create an ARP entry]:host:_hosts:ethernet address::*:option:(temp trail pub)' \
  "($cmds 1 -n --numeric)"{-f,--file}'[read multiple entries from file]:file:_files' \
  '(-i --device)'{-i,--device}'[select an interface]:::_net_interfaces:' \
  '(-D --use-device -a --display -d --delete)'{-D,--use-device}"[use the interface ifa's hardware address]" \
  '(-H --hw-type -d --delete)'{-H,--hw-type}'[class of entries to check for]:class:(ether arcnet pronet ax25 netrom)' \
  '(-n --numeric -d --delete -s --set -f --file)'{-n,--numeric}'[shows numerical addresses]' \
  '(-v --verbose)'{-v,--verbose}'[be verbose]' \
  '(-a)1:host:->hostintable' && ret=0

[[ "$state" = hostintable ]] &&
  _wanted hosts expl 'host' compadd ${${${(f)"$(${words[1]} -an)"}##[ ?(]#}%%[ )]*} && ret=0

return ret