summaryrefslogtreecommitdiffstats
path: root/completions/ss
diff options
context:
space:
mode:
Diffstat (limited to 'completions/ss')
-rw-r--r--completions/ss41
1 files changed, 41 insertions, 0 deletions
diff --git a/completions/ss b/completions/ss
new file mode 100644
index 0000000..4a27d51
--- /dev/null
+++ b/completions/ss
@@ -0,0 +1,41 @@
+# ss(8) completion -*- shell-script -*-
+
+_ss()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ case $prev in
+ --help | --version | -!(-*)[hV])
+ return
+ ;;
+ --family | -!(-*)f)
+ COMPREPLY=($(compgen -W 'unix inet inet6 link netlink' \
+ -- "$cur"))
+ return
+ ;;
+ --query | -!(-*)A)
+ local prefix=
+ [[ $cur == *,* ]] && prefix="${cur%,*},"
+ COMPREPLY=($(compgen -W '$("$1" --help | \
+ command sed -e "s/|/ /g" -ne "s/.*QUERY := {\([^}]*\)}.*/\1/p")' \
+ -- "${cur##*,}"))
+ ((${#COMPREPLY[@]} == 1)) && COMPREPLY=(${COMPREPLY/#/$prefix})
+ return
+ ;;
+ --diag | --filter | -!(-*)[DF])
+ _filedir
+ return
+ ;;
+ esac
+
+ $split && return
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
+ fi
+} &&
+ complete -F _ss ss
+
+# ex: filetype=sh