Blame bash-completion/mtr

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