summaryrefslogtreecommitdiff
path: root/completions/inotifywait
diff options
context:
space:
mode:
Diffstat (limited to 'completions/inotifywait')
-rw-r--r--completions/inotifywait47
1 files changed, 47 insertions, 0 deletions
diff --git a/completions/inotifywait b/completions/inotifywait
new file mode 100644
index 00000000..637d4742
--- /dev/null
+++ b/completions/inotifywait
@@ -0,0 +1,47 @@
+# bash completion for inotifywait(1) and inotifywatch(1) -*- shell-script -*-
+
+_inotifywait_events()
+{
+ # Expecting line with "Events:", followed by ones starting with one
+ # tab. Word following the tab is event name, others are line
+ # wrapped explanations.
+ COMPREPLY+=( $(compgen -W "$($1 --help 2>/dev/null | \
+ command sed -e '/^Events:/,/^[^'$'\t'']/!d' \
+ -ne 's/^'$'\t''\([^ '$'\t'']\{1,\}\)[ '$'\t''].*/\1/p')" \
+ -- "$cur") )
+}
+
+_inotifywait()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ --help|--exclude|--excludei|--format|--timefmt|--timeout|-!(-*)[ht])
+ return
+ ;;
+ --fromfile|--outfile|-!(-*)o)
+ _filedir
+ return
+ ;;
+ --event|-!(-*)e)
+ _inotifywait_events "$1"
+ return
+ ;;
+ --ascending|--descending)
+ COMPREPLY=( $(compgen -W 'total' -- "$cur") )
+ _inotifywait_events "$1"
+ return
+ ;;
+ esac
+
+ if [[ "$cur" == -* ]]; then
+ COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") )
+ return
+ fi
+
+ _filedir
+} &&
+complete -F _inotifywait inotifywait inotifywatch
+
+# ex: filetype=sh