diff options
Diffstat (limited to '')
-rw-r--r-- | completions/pgrep | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/completions/pgrep b/completions/pgrep new file mode 100644 index 0000000..62dbb65 --- /dev/null +++ b/completions/pgrep @@ -0,0 +1,62 @@ +# pgrep(1) and pkill(1) completion -*- shell-script -*- + +_pgrep() +{ + local cur prev words cword + _init_completion || return + + case $prev in + --delimiter | --pgroup | --session | --terminal | -!(-*)[cdgJMNstTz]) + return + ;; + --signal) + _signals + return + ;; + --pidfile | -!(-*)F) + _filedir + return + ;; + --group | -!(-*)G) + _gids + return + ;; + -j) + COMPREPLY=($(compgen -W 'any none' -- "$cur")) + return + ;; + --parent | --ns | -!(-*)P) + _pids + return + ;; + --euid | --uid | -!(-*)[uU]) + _uids + return + ;; + --nslist) + local prefix= + [[ $cur == *,* ]] && prefix="${cur%,*}," + COMPREPLY=( + $(IFS="$IFS," compgen -W '$($1 --help 2>&1 | + command sed -ne "s/^[[:space:]]*Available namespaces://p")' \ + -- "${cur##*,}")) + ((${#COMPREPLY[@]} == 1)) && COMPREPLY=(${COMPREPLY/#/$prefix}) + return + ;; + esac + + if [[ $cur == -* ]]; then + local help=$(_parse_help "$1") + [[ $help ]] || help='$("$1" --usage 2>&1 | + command sed -e "s/\[-signal\]//" -e "s/\[-SIGNAL\]//" | + _parse_usage -)' + COMPREPLY=($(compgen -W "$help" -- "$cur")) + [[ $cword -eq 1 && $1 == *pkill ]] && _signals - + return + fi + + _pnames -s +} && + complete -F _pgrep pgrep pkill + +# ex: filetype=sh |