69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
_mtr_module()
|
|
{
|
|
local cur prev OPTS
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
case $prev in
|
|
'-F'|'--filename')
|
|
local IFS=$'\n'
|
|
compopt -o filenames
|
|
COMPREPLY=( $(compgen -f -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-a'|'--address')
|
|
COMPREPLY=( $(compgen -W "ADDRESS" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-f'|'--first-ttl'|'-m'|'--max-ttl'|'-U'|'--max-unknown'|'-B'|'--bitpattern'|'-Q'|'--tos'|'-c'|'--report-cycles')
|
|
COMPREPLY=( $(compgen -W "NUMBER" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-P'|'--port'|'-L'|'--localport')
|
|
COMPREPLY=( $(compgen -W "PORT" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-s'|'--psize')
|
|
COMPREPLY=( $(compgen -W "SIZE" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-i'|'--interval'|'-G'|'--gracetime'|'-Z'|'--timeout')
|
|
COMPREPLY=( $(compgen -W "SECONDS" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-M'|'--mark')
|
|
COMPREPLY=( $(compgen -W "MARK" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'--displaymode')
|
|
COMPREPLY=( $(compgen -W "{0..2}" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-y'|'--ipinfo')
|
|
COMPREPLY=( $(compgen -W "{0..4}" -- "$cur") )
|
|
return 0
|
|
;;
|
|
'-o'|'--order')
|
|
COMPREPLY=( $(compgen -W "LDRSNBAWVGJMXI" -- "$cur") )
|
|
return 0
|
|
;;
|
|
esac
|
|
case $cur in
|
|
-*)
|
|
OPTS='
|
|
--filename --inet --inet6 --udp --tcp --address --first-ttl
|
|
--max-ttl --max-unknown --port --localport --psize --bitpattern
|
|
--interval --gracetime --tos --mpls --timeout --mark --report
|
|
--report-wide --report-cycles --json --xml --csv --raw --split
|
|
--curses --displaymode --gtk --no-dns --show-ips --order --ipinfo
|
|
--aslookup --help --version
|
|
'
|
|
COMPREPLY=( $(compgen -W "${OPTS[*]}" -- "$cur") )
|
|
return 0
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "ip_address hostname" -- "$cur") )
|
|
return 0
|
|
}
|
|
complete -F _mtr_module mtr
|