summaryrefslogtreecommitdiff
path: root/completions/tipc
diff options
context:
space:
mode:
Diffstat (limited to 'completions/tipc')
-rw-r--r--completions/tipc385
1 files changed, 195 insertions, 190 deletions
diff --git a/completions/tipc b/completions/tipc
index 830040d9..44ade360 100644
--- a/completions/tipc
+++ b/completions/tipc
@@ -1,20 +1,22 @@
# tipc(8) completion -*- shell-script -*-
-_tipc_media() {
+_tipc_media()
+{
local optind=$1
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'media' -- $cur) )
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'media' -- $cur))
return 0
- elif [[ $cword -eq $optind+1 ]]; then
- COMPREPLY=( $(compgen -W 'udp eth ib' -- $cur) )
+ elif ((cword == optind + 1)); then
+ COMPREPLY=($(compgen -W 'udp eth ib' -- $cur))
return 0
fi
return 1
}
-_tipc_bearer() {
+_tipc_bearer()
+{
local optind=$1
local media i
@@ -22,52 +24,54 @@ _tipc_bearer() {
return
fi
- for ((i = 0; i < $cword; i++)); do
- if [[ ${words[$i]} == 'media' ]]; then
- media=${words[$(($i + 1))]}
+ for ((i = 0; i < cword; i++)); do
+ if [[ ${words[i]} == 'media' ]]; then
+ media=${words[i + 1]}
fi
done
- if [[ $cword -eq $optind+2 ]]; then
+ if ((cword == optind + 2)); then
case "$media" in
- "udp")
- COMPREPLY=( $(compgen -W 'name' -- $cur) )
- ;;
- "eth" | "ib")
- COMPREPLY=( $(compgen -W 'device' -- $cur) )
- ;;
+ "udp")
+ COMPREPLY=($(compgen -W 'name' -- $cur))
+ ;;
+ "eth" | "ib")
+ COMPREPLY=($(compgen -W 'device' -- $cur))
+ ;;
esac
- elif [[ $cword -eq $optind+3 ]]; then
+ elif ((cword == optind + 3)); then
case "$media" in
- "udp")
- local names=$(tipc bearer list 2>/dev/null | awk -F: '/^udp:/ {print $2}')
- COMPREPLY=( $(compgen -W '$names' -- $cur) )
- ;;
- "eth")
- local interfaces=$(command ls /sys/class/net/)
- COMPREPLY=( $(compgen -W '$interfaces' -- $cur) )
- ;;
+ "udp")
+ local names=$(tipc bearer list 2>/dev/null | awk -F: '/^udp:/ {print $2}')
+ COMPREPLY=($(compgen -W '$names' -- $cur))
+ ;;
+ "eth")
+ local interfaces=$(command ls /sys/class/net/)
+ COMPREPLY=($(compgen -W '$interfaces' -- $cur))
+ ;;
esac
fi
}
-_tipc_link_opts() {
- COMPREPLY=( $(compgen -W 'priority tolerance window' -- $cur) )
+_tipc_link_opts()
+{
+ COMPREPLY=($(compgen -W 'priority tolerance window' -- $cur))
}
-_tipc_link() {
+_tipc_link()
+{
local optind=$1
local filter=$2
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'link' -- $cur) )
- elif [[ $cword -eq $optind+1 ]]; then
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'link' -- $cur))
+ elif ((cword == optind + 1)); then
# awk drops link state and last trailing :
- local links=$(tipc link list 2>/dev/null | \
+ local links=$(tipc link list 2>/dev/null |
awk '{print substr($1, 0, length($1))}')
local -a exclude
- [[ $filter == peers ]] && exclude=( -X broadcast-link )
- COMPREPLY=( $(compgen "${exclude[@]}" -W '$links' -- $cur) )
+ [[ $filter == peers ]] && exclude=(-X broadcast-link)
+ COMPREPLY=($(compgen "${exclude[@]}" -W '$links' -- $cur))
fi
}
@@ -82,203 +86,204 @@ _tipc()
# Flags can be placed anywhere in the commandline
case "$cur" in
-*)
- COMPREPLY=( $(compgen -W '-h --help' -- $cur) )
+ COMPREPLY=($(compgen -W '-h --help' -- $cur))
return
;;
esac
- if [[ $cword -eq 1 ]]; then
- COMPREPLY=( $(compgen -W 'bearer link media nametable node socket' -- $cur) )
+ if ((cword == 1)); then
+ COMPREPLY=($(compgen -W 'bearer link media nametable node socket' -- $cur))
return
fi
- case "${words[$optind]}" in
- bearer)
- (( optind++ ))
+ case "${words[optind]}" in
+ bearer)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'enable disable set get list' -- $cur) )
- return
- fi
-
- case "${words[$optind]}" in
- enable)
- local media params
- (( optind++ ))
-
- if [[ $cword -lt $optind+4 ]]; then
- _tipc_bearer $optind
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'enable disable set get list' -- $cur))
return
fi
- for ((i = 0; i < $cword; i++)); do
- if [[ ${words[$i]} == 'media' ]]; then
- media=${words[$(($i + 1))]}
- fi
- done
- case "$media" in
- "udp")
- declare -a params=("localip" "localport" "remoteip"
- "remoteport" "domain" "priority")
- ;;
- "eth" | "ib")
- declare -a params=("domain" "priority")
+ case "${words[optind]}" in
+ enable)
+ local media params
+ ((optind++))
+
+ if ((cword < optind + 4)); then
+ _tipc_bearer $optind
+ return
+ fi
+
+ for ((i = 0; i < cword; i++)); do
+ if [[ ${words[i]} == 'media' ]]; then
+ media=${words[i + 1]}
+ fi
+ done
+ case "$media" in
+ "udp")
+ declare -a params=("localip" "localport" "remoteip"
+ "remoteport" "domain" "priority")
+ ;;
+ "eth" | "ib")
+ declare -a params=("domain" "priority")
+ ;;
+ *)
+ return
+ ;;
+ esac
+
+ # If the previous word was a known parameter, we assume a value for
+ # that key. Note that this would break if the user attempts to use
+ # a known key as value.
+ for i in "${params[@]}"; do
+ if [[ $prev == "$i" ]]; then
+ return
+ fi
+ done
+
+ # In order not to print already used options, we remove them
+ for p in "${words[@]}"; do
+ for i in "${params[@]}"; do
+ if [[ $p == "$i" ]]; then
+ params=("${params[@]/$i/}")
+ fi
+ done
+ done
+
+ COMPREPLY=($(compgen -W '${params[@]}' -- $cur))
;;
- *)
- return
+ disable)
+ ((optind++))
+
+ _tipc_bearer $optind
;;
- esac
+ get)
+ ((optind++))
- # If the previous word was a known paramater we assume a value for
- # that key Note that this would break if the user attempts to use a
- # kown key as value
- for i in "${params[@]}"; do
- if [[ $prev == $i ]]; then
- return
- fi
- done
-
- # In order not to print already used options we remove them
- for p in "${words[@]}"; do
- for i in "${params[@]}"; do
- if [[ $p == $i ]]; then
- params=( "${params[@]/$i}" )
+ if ((cword == optind)); then
+ _tipc_link_opts
+ elif ((cword >= optind + 1)); then
+ _tipc_bearer $((optind + 1))
fi
- done
- done
-
- COMPREPLY=( $(compgen -W '${params[@]}' -- $cur) )
- ;;
- disable)
- (( optind++ ))
+ ;;
+ set)
+ ((optind++))
- _tipc_bearer $optind
+ if ((cword == optind)); then
+ _tipc_link_opts
+ elif ((cword >= optind + 2)); then
+ _tipc_bearer $((optind + 2))
+ fi
+ ;;
+ esac
;;
- get)
- (( optind++ ))
+ link)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- _tipc_link_opts
- elif [[ $cword -ge $optind+1 ]]; then
- _tipc_bearer $(($optind + 1))
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'get set list statistics' -- $cur))
+ return
fi
- ;;
- set)
- (( optind++ ))
- if [[ $cword -eq $optind ]]; then
- _tipc_link_opts
- elif [[ $cword -ge $optind+2 ]]; then
- _tipc_bearer $(($optind + 2))
- fi
- ;;
- esac
- ;;
- link)
- (( optind++ ))
+ case "${words[optind]}" in
+ get)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'get set list statistics' -- $cur) )
- return
- fi
+ if ((cword == optind)); then
+ _tipc_link_opts
+ elif ((cword >= optind + 1)); then
+ _tipc_link $((optind + 1)) "peers"
+ fi
+ ;;
+ set)
+ ((optind++))
- case "${words[$optind]}" in
- get)
- (( optind++ ))
+ if ((cword == optind)); then
+ _tipc_link_opts
+ elif ((cword >= optind + 2)); then
+ _tipc_link $((optind + 2)) "peers"
+ fi
+ ;;
+ statistics)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- _tipc_link_opts
- elif [[ $cword -ge $optind+1 ]]; then
- _tipc_link $(($optind + 1)) "peers"
- fi
- ;;
- set)
- (( optind++ ))
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'show reset' -- $cur))
+ return
+ fi
- if [[ $cword -eq $optind ]]; then
- _tipc_link_opts
- elif [[ $cword -ge $optind+2 ]]; then
- _tipc_link $(($optind + 2)) "peers"
- fi
+ case "${words[optind]}" in
+ show | reset)
+ _tipc_link $((optind + 1))
+ ;;
+ esac
+ ;;
+ esac
;;
- statistics)
- (( optind++ ))
+ media)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'show reset' -- $cur) )
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'get set list' -- $cur))
return
fi
- case "${words[$optind]}" in
- show|reset)
- _tipc_link $(($optind + 1))
- ;;
- esac
- ;;
- esac
- ;;
- media)
- (( optind++ ))
+ case "${words[optind]}" in
+ get)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'get set list' -- $cur) )
- return
- fi
-
- case "${words[$optind]}" in
- get)
- (( optind++ ))
+ if ((cword == optind)); then
+ _tipc_link_opts
+ elif ((cword >= optind + 1)); then
+ _tipc_media $((optind + 1))
+ fi
+ ;;
+ set)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- _tipc_link_opts
- elif [[ $cword -ge $optind+1 ]]; then
- _tipc_media $(($optind + 1))
- fi
+ if ((cword == optind)); then
+ _tipc_link_opts
+ elif ((cword >= optind + 2)); then
+ _tipc_media $((optind + 2))
+ fi
+ ;;
+ esac
;;
- set)
- (( optind++ ))
+ nametable)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- _tipc_link_opts
- elif [[ $cword -ge $optind+2 ]]; then
- _tipc_media $(($optind + 2))
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'show' -- $cur))
fi
;;
- esac
- ;;
- nametable)
- (( optind++ ))
+ node)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'show' -- $cur) )
- fi
- ;;
- node)
- (( optind++ ))
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'list get set' -- $cur))
+ return
+ fi
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'list get set' -- $cur) )
- return
- fi
+ case "${words[optind]}" in
+ get | set)
+ ((optind++))
- case "${words[$optind]}" in
- get|set)
- (( optind++ ))
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'address netid' -- $cur))
+ fi
+ ;;
+ esac
+ ;;
+ socket)
+ ((optind++))
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'address netid' -- $cur) )
+ if ((cword == optind)); then
+ COMPREPLY=($(compgen -W 'list' -- $cur))
fi
- esac
- ;;
- socket)
- (( optind++ ))
-
- if [[ $cword -eq $optind ]]; then
- COMPREPLY=( $(compgen -W 'list' -- $cur) )
- fi
- ;;
+ ;;
esac
} &&
-complete -F _tipc tipc
+ complete -F _tipc tipc
# ex: filetype=sh