summaryrefslogtreecommitdiffstats
path: root/completions/arp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--completions/arp59
-rw-r--r--completions/arping31
-rw-r--r--completions/arpspoof28
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