|  | _prlimit_module() | 
|  | { | 
|  | local cur prev OPTS | 
|  | COMPREPLY=() | 
|  | cur="${COMP_WORDS[COMP_CWORD]}" | 
|  | prev="${COMP_WORDS[COMP_CWORD-1]}" | 
|  | case $prev in | 
|  | '-p'|'--pid') | 
|  | PIDS=$(for I in /proc/[0-9]*; do echo ${I##"/proc/"}; done) | 
|  | COMPREPLY=( $(compgen -W "$PIDS" -- $cur) ) | 
|  | return 0 | 
|  | ;; | 
|  | '-o'|'--output') | 
|  | # FIXME: how to append to a string with compgen? | 
|  | local OUTPUT | 
|  | OUTPUT="DESCRIPTION RESOURCE SOFT HARD UNITS" | 
|  | compopt -o nospace | 
|  | COMPREPLY=( $(compgen -W "$OUTPUT" -S ',' -- $cur) ) | 
|  | return 0 | 
|  | ;; | 
|  | '-h'|'--help'|'-V'|'--version') | 
|  | return 0 | 
|  | ;; | 
|  | esac | 
|  | case $cur in | 
|  | '=') | 
|  | cur=${cur#=} | 
|  | # FIXME: is there anything what could be printed | 
|  | # as limit value(s) | 
|  | ;; | 
|  | -*) | 
|  | OPTS="--pid | 
|  | --output | 
|  | --noheadings | 
|  | --raw | 
|  | --verbose | 
|  | --help | 
|  | --version | 
|  | --core= | 
|  | --data= | 
|  | --nice= | 
|  | --fsize= | 
|  | --sigpending= | 
|  | --memlock= | 
|  | --rss= | 
|  | --nofile= | 
|  | --msgqueue= | 
|  | --rtprio= | 
|  | --stack= | 
|  | --cpu= | 
|  | --nproc= | 
|  | --as= | 
|  | --locks= | 
|  | --rttime=" | 
|  | COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) | 
|  | return 0 | 
|  | ;; | 
|  | esac | 
|  | compopt -o bashdefault | 
|  | COMPREPLY=( $(compgen -c -- $cur) ) | 
|  | return 0 | 
|  | } | 
|  | complete -F _prlimit_module prlimit |