summaryrefslogtreecommitdiffstats
path: root/completions/watch
diff options
context:
space:
mode:
Diffstat (limited to 'completions/watch')
-rw-r--r--completions/watch29
1 files changed, 16 insertions, 13 deletions
diff --git a/completions/watch b/completions/watch
index efc0a98..443bed3 100644
--- a/completions/watch
+++ b/completions/watch
@@ -1,19 +1,21 @@
# watch(1) completion -*- shell-script -*-
-[[ $OSTYPE == *linux* ]] || return 1
+[[ $OSTYPE == *@(linux|darwin)* ]] || return 1
-_watch()
+_comp_cmd_watch()
{
- local cur prev words cword split
- _init_completion -s || return
+ local cur prev words cword was_split comp_args
+ _comp_initialize -s -- "$@" || return
local offset=0 i
+ local noargopts='!(-*|*[dn]*)'
+ # shellcheck disable=SC2254
for ((i = 1; i <= cword; i++)); do
case ${words[i]} in
- --help | --version | -!(-*)h)
+ --help | --version | -${noargopts}h)
return
;;
- --interval | -!(-*)n)
+ --interval | -${noargopts}n)
((i++))
continue
;;
@@ -26,29 +28,30 @@ _watch()
done
if ((offset > 0)); then
- _command_offset $offset
+ _comp_command_offset $offset
return
fi
+ # shellcheck disable=SC2254
case $prev in
- --differences | -!(-*)d)
+ --differences | -${noargopts}d)
[[ $cur != -* ]] &&
- COMPREPLY=($(compgen -W 'cumulative' -- "$cur"))
+ _comp_compgen -- -W 'cumulative'
return
;;
- --interval | -!(-*)n)
+ --interval | -${noargopts}n)
return
;;
esac
- $split && return
+ [[ $was_split ]] && return
if [[ $cur == -* ]]; then
- COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ _comp_compgen_help
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
return
fi
} &&
- complete -F _watch watch
+ complete -F _comp_cmd_watch watch
# ex: filetype=sh