diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2011-11-24 23:29:39 +0200 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2011-11-25 08:45:59 +0200 |
commit | eab195c440c283adf1cbe5f06d045256372e505e (patch) | |
tree | c85b728777e5b3af8d8651015087c2dbee9050ab | |
parent | 3af9222e964739c3ca954bc1b966dc5628160457 (diff) | |
download | bash-completion-eab195c440c283adf1cbe5f06d045256372e505e.tar.gz |
iperf: New completion.
-rw-r--r-- | completions/Makefile.am | 1 | ||||
-rw-r--r-- | completions/iperf | 63 | ||||
-rw-r--r-- | test/completion/iperf.exp | 1 | ||||
-rw-r--r-- | test/lib/completions/iperf.exp | 20 |
4 files changed, 85 insertions, 0 deletions
diff --git a/completions/Makefile.am b/completions/Makefile.am index 8ded90d3..892523bc 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -126,6 +126,7 @@ bashcomp_DATA = a2x \ invoke-rc.d \ ionice \ ip \ + iperf \ iptables \ ipmitool \ ipsec \ diff --git a/completions/iperf b/completions/iperf new file mode 100644 index 00000000..721825e2 --- /dev/null +++ b/completions/iperf @@ -0,0 +1,63 @@ +# iperf(1) completion -*- shell-script -*- + +_iperf() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -h|--help|-v|--version|-i|--interval|-l|--len|-p|--port|-w|--window|\ + -M|--mss|-b|--bandwidth|-n|--num|-t|--time|-L|--listenport|-P|\ + --parallel|-T|--ttl|-Z|--linux-congestion) + return + ;; + -f|--format) + COMPREPLY=( $( compgen -W 'k m K M' -- "$cur" ) ) + return + ;; + -o|--output|-F|--fileinput) + _filedir + return + ;; + -B|--bind) + _available_interfaces -a + _ip_addresses + return + ;; + -c|--client) + _known_hosts_real "$cur" + return + ;; + -x|--reportexclude) + COMPREPLY=( $( compgen -W 'C D M S V' -- "$cur" ) ) + return + ;; + -y|--reportstyle) + COMPREPLY=( $( compgen -W 'C' -- "$cur" ) ) + return + ;; + esac + + $split && return + + # Filter mode specific options + local i filter=cat + for i in ${words[@]}; do + case $i in + -s|--server) + filter='sed -e /^Client.specific/,/^$/d' + ;; + -c|--client) + filter='sed -e /^Server.specific/,/^$/d' + ;; + esac + done + [[ $filter != cat ]] && filter+=' -e /--client/d -e /--server/d' + + COMPREPLY=( $( compgen -W \ + '$( "$1" --help 2>&1 | $filter | _parse_help - )' -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace +} && +complete -F _iperf iperf + +# ex: ts=4 sw=4 et filetype=sh diff --git a/test/completion/iperf.exp b/test/completion/iperf.exp new file mode 100644 index 00000000..f5f19ef5 --- /dev/null +++ b/test/completion/iperf.exp @@ -0,0 +1 @@ +assert_source_completions iperf diff --git a/test/lib/completions/iperf.exp b/test/lib/completions/iperf.exp new file mode 100644 index 00000000..66a0ba3b --- /dev/null +++ b/test/lib/completions/iperf.exp @@ -0,0 +1,20 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "iperf " + + +sync_after_int + + +teardown |