mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
60 lines
1.6 KiB
Bash
60 lines
1.6 KiB
Bash
# 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
|