mirror of
https://github.com/traviscross/mtr.git
synced 2024-09-22 02:47:11 +00:00
usability: add bash-completion file
This commit is contained in:
parent
0f9e8e23ce
commit
11976067b0
@ -64,3 +64,7 @@ endif
|
||||
mtr_INCLUDES = $(GLIB_CFLAGS) -I$(top_builddir) -I$(top_srcdir)
|
||||
mtr_CFLAGS = $(GTK_CFLAGS) $(NCURSES_CFLAGS)
|
||||
mtr_LDADD = $(GTK_LIBS) $(NCURSES_LIBS) $(RESOLV_LIBS)
|
||||
|
||||
if BUILD_BASH_COMPLETION
|
||||
dist_bashcompletion_DATA = bash-completion/mtr
|
||||
endif
|
||||
|
68
bash-completion/mtr
Normal file
68
bash-completion/mtr
Normal file
@ -0,0 +1,68 @@
|
||||
_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'|'-m'|'--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'|'--graceperiod'|'-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 --graceperiod --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
|
17
configure.ac
17
configure.ac
@ -214,6 +214,23 @@ AS_IF([test "$warning_CFLAGS" = "none"], [
|
||||
AC_MSG_RESULT([$warning_CFLAGS])
|
||||
])
|
||||
|
||||
# bash-completion
|
||||
AC_ARG_WITH([bashcompletiondir],
|
||||
AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
|
||||
[],
|
||||
[AS_IF([`$PKG_CONFIG --exists bash-completion`], [
|
||||
with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
|
||||
], [
|
||||
with_bashcompletiondir=${datadir}/bash-completion/completions
|
||||
])
|
||||
])
|
||||
AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
|
||||
AC_ARG_ENABLE([bash-completion],
|
||||
AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
|
||||
[], [enable_bash_completion=yes]
|
||||
)
|
||||
AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
|
||||
|
||||
# Prepare config.h, Makefile, and output them.
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
|
Loading…
Reference in New Issue
Block a user