summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Skyttä <ville.skytta@iki.fi>2013-02-04 17:24:47 +0200
committerVille Skyttä <ville.skytta@iki.fi>2013-02-04 17:24:47 +0200
commit61fe8d10a8e15285e2ad152017403e8bb609614b (patch)
tree642fa630ca1885e93dfa1ae8d79716f2fe9fa950
parent06fd510c44c17db856678e0d572c14b0cebb2e00 (diff)
downloadbash-completion-61fe8d10a8e15285e2ad152017403e8bb609614b.tar.gz
ip: Improve addr show and link show completions.
-rw-r--r--completions/ip27
1 files changed, 25 insertions, 2 deletions
diff --git a/completions/ip b/completions/ip
index e9e60d73..b073c36f 100644
--- a/completions/ip
+++ b/completions/ip
@@ -1,5 +1,12 @@
# ip(8) completion -*- shell-script -*-
+_iproute2_etc()
+{
+ COMPREPLY+=( $( compgen -W \
+ "$( awk '!/#/ { print $2 }' /etc/iproute2/$1 2>/dev/null )" \
+ -- "$cur" ) )
+}
+
_ip()
{
local cur prev words cword
@@ -96,7 +103,14 @@ _ip()
fi
;;
show)
- [[ $cword -eq $subcword+1 ]] && _available_interfaces
+ if [[ $cword -eq $subcword+1 ]]; then
+ _available_interfaces
+ COMPREPLY+=( $( compgen -W 'dev group up' -- "$cur" ) )
+ elif [[ $prev == dev ]]; then
+ _available_interfaces
+ elif [[ $prev == group ]]; then
+ _iproute2_etc group
+ fi
;;
*)
[[ $cword -eq $subcword ]] && \
@@ -115,7 +129,16 @@ _ip()
# TODO
;;
show|flush)
- # TODO
+ if [[ $cword -eq $subcword+1 ]]; then
+ _available_interfaces
+ COMPREPLY+=( $( compgen -W 'dev scope to label dynamic
+ permanent tentative deprecated dadfailed temporary
+ primary secondary up' -- "$cur" ) )
+ elif [[ $prev == dev ]]; then
+ _available_interfaces
+ elif [[ $prev == scope ]]; then
+ _iproute2_etc rt_scopes
+ fi
;;
*)
[[ $cword -eq $subcword ]] && \