]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
usability: add bash-completion file
authorSami Kerola <kerolasa@iki.fi>
Wed, 31 Aug 2016 22:27:56 +0000 (23:27 +0100)
committerSami Kerola <kerolasa@iki.fi>
Sun, 4 Sep 2016 15:17:46 +0000 (16:17 +0100)
Makefile.am
bash-completion/mtr [new file with mode: 0644]
configure.ac

index 2ba496a3c8ad639a718e234d97312ecf6c27c9aa..cdfebd8210abf1e071ebd1913ff63f810e08ef39 100644 (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
diff --git a/bash-completion/mtr b/bash-completion/mtr
new file mode 100644 (file)
index 0000000..f9903d1
--- /dev/null
@@ -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
index 0926bbc17721662f5ccfc0413658394eb194dd9a..d9db9f6de65869fcafbbe677ec20f10b258e5f57 100644 (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])