diff options
Diffstat (limited to '')
-rw-r--r-- | completions/arp | 59 | ||||
-rw-r--r-- | completions/arping | 31 | ||||
-rw-r--r-- | completions/arpspoof | 28 |
3 files changed, 118 insertions, 0 deletions
diff --git a/completions/arp b/completions/arp new file mode 100644 index 0000000..922e800 --- /dev/null +++ b/completions/arp @@ -0,0 +1,59 @@ +# arp(8) completion -*- shell-script -*- + +_arp() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --device | -!(-*)i) + _available_interfaces -a + return + ;; + --protocol | -!(-*)[Ap]) + # TODO protocol/address family + return + ;; + --file | -!(-*)f) + _filedir + return + ;; + --hw-type | -!(-*)[Ht]) + # TODO: parse from --help output? + COMPREPLY=($(compgen -W 'ash ether ax25 netrom rose arcnet \ + dlci fddi hippi irda x25 eui64' -- "$cur")) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + return + fi + + local args + _count_args "" "@(--device|--protocol|--file|--hw-type|-!(-*)[iApfHt])" + case $args in + 1) + local ips=$("$1" -an | command sed -ne \ + 's/.*(\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}\)).*/\1/p') + COMPREPLY=($(compgen -W '$ips' -- "$cur")) + ;; + 2) + # TODO if -d mode: "pub"; if not -f mode: hw_addr + # TODO hw_addr is a configured interface with --use-device/-*D* + ;; + 3) + # TODO netmask|pub|temp if -s mode + ;; + 4) + # TODO netmask value if previous was "netmask" + ;; + 5) + # TODO "pub" if 3rd was "netmask" + ;; + esac +} && + complete -F _arp arp + +# ex: filetype=sh diff --git a/completions/arping b/completions/arping new file mode 100644 index 0000000..57e1e19 --- /dev/null +++ b/completions/arping @@ -0,0 +1,31 @@ +# arping(8) completion -*- shell-script -*- + +_arping() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -*c | -*w) + return + ;; + -*I) + _available_interfaces -a + return + ;; + -*s) + _ip_addresses + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" -h)' -- "$cur")) + return + fi + + _known_hosts_real -- "$cur" +} && + complete -F _arping arping + +# ex: filetype=sh diff --git a/completions/arpspoof b/completions/arpspoof new file mode 100644 index 0000000..d1a1373 --- /dev/null +++ b/completions/arpspoof @@ -0,0 +1,28 @@ +# arpspoof completion -*- shell-script -*- + +_arpspoof() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -i) + _available_interfaces -a + return + ;; + -t) + _known_hosts_real -- "$cur" + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_usage "$1")' -- "$cur")) + else + _known_hosts_real -- "$cur" + fi + +} && + complete -F _arpspoof arpspoof + +# ex: filetype=sh |