From: Sami Kerola Date: Wed, 31 Aug 2016 22:27:56 +0000 (+0100) Subject: usability: add bash-completion file X-Git-Tag: v0.88~26^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=11976067b0dc4fcc6b54c11c643aa15771de2a2b;p=thirdparty%2Fmtr.git usability: add bash-completion file --- diff --git a/Makefile.am b/Makefile.am index 2ba496a..cdfebd8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/bash-completion/mtr b/bash-completion/mtr new file mode 100644 index 0000000..f9903d1 --- /dev/null +++ b/bash-completion/mtr @@ -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 diff --git a/configure.ac b/configure.ac index 0926bbc..d9db9f6 100644 --- a/configure.ac +++ b/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])