diff options
Diffstat (limited to 'completions/lsof')
-rw-r--r-- | completions/lsof | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/completions/lsof b/completions/lsof new file mode 100644 index 0000000..eb1e967 --- /dev/null +++ b/completions/lsof @@ -0,0 +1,56 @@ +# lsof(8) completion -*- shell-script -*- + +_lsof() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -'?' | -h | +c | -c | -d | -F | -i | +r | -r | -s | -S | -T) + return + ;; + -A | -k | -m | +m | -o) + _filedir + return + ;; + +d | +D) + _filedir -d + return + ;; + -D) + COMPREPLY=($(compgen -W '? b i r u' -- "$cur")) + return + ;; + -f) + COMPREPLY=($(compgen -W 'c f g G n' -- "$cur")) + return + ;; + -g) + # TODO: handle ^foo exclusions, comma separated lists + _pgids + return + ;; + -p) + # TODO: handle ^foo exclusions, comma separated lists + _pids + return + ;; + -u) + # TODO: handle ^foo exclusions, comma separated lists + COMPREPLY=($(compgen -u -- "$cur")) + return + ;; + esac + + if [[ $cur == [-+]* ]]; then + COMPREPLY=($(compgen -W '-h -a -A -b -c +c -C +d -d +D -D +f -f -F -g + -i -k -l +L -L +m -m +M -M -n -N -o -O -p -P +r -r -R -s -S -T -t + -u -U -v -V +w -w -x -X -z -Z' -- "$cur")) + return + fi + + _filedir +} && + complete -F _lsof lsof + +# ex: filetype=sh |