usability: add bash-completion file

This commit is contained in:
Sami Kerola 2016-08-31 23:27:56 +01:00
parent 0f9e8e23ce
commit 11976067b0
No known key found for this signature in database
GPG Key ID: A9553245FDE9B739
3 changed files with 89 additions and 0 deletions

View File

@ -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
View 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

View File

@ -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])