/
githubmirror
/
bash-completion
Обзор
Документация
Войти
/
githubmirror
/
bash-completion
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.11
completions/arp
59 строк
2 KB
Ville Skyttä
*: run all shell code through shfmt -s
06 май 2020, 22:54
06 май 2020, 22:54
dbe0ec8
Код
Авторство
О чём код?
# 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