diff options
Diffstat (limited to 'completions/watch')
-rw-r--r-- | completions/watch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/completions/watch b/completions/watch new file mode 100644 index 0000000..efc0a98 --- /dev/null +++ b/completions/watch @@ -0,0 +1,54 @@ +# watch(1) completion -*- shell-script -*- + +[[ $OSTYPE == *linux* ]] || return 1 + +_watch() +{ + local cur prev words cword split + _init_completion -s || return + + local offset=0 i + for ((i = 1; i <= cword; i++)); do + case ${words[i]} in + --help | --version | -!(-*)h) + return + ;; + --interval | -!(-*)n) + ((i++)) + continue + ;; + -*) + continue + ;; + esac + offset=$i + break + done + + if ((offset > 0)); then + _command_offset $offset + return + fi + + case $prev in + --differences | -!(-*)d) + [[ $cur != -* ]] && + COMPREPLY=($(compgen -W 'cumulative' -- "$cur")) + return + ;; + --interval | -!(-*)n) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + return + fi +} && + complete -F _watch watch + +# ex: filetype=sh |