| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # perf completion
- function_exists()
- {
- declare -F $1 > /dev/null
- return $?
- }
- have perf &&
- _perf()
- {
- local cur prev cmd
- COMPREPLY=()
- if function_exists _get_comp_words_by_ref; then
- _get_comp_words_by_ref cur prev
- else
- cur=$(_get_cword)
- prev=${COMP_WORDS[COMP_CWORD-1]}
- fi
- cmd=${COMP_WORDS[0]}
- # List perf subcommands or long options
- if [ $COMP_CWORD -eq 1 ]; then
- if [[ $cur == --* ]]; then
- COMPREPLY=( $( compgen -W '--help --version \
- --exec-path --html-path --paginate --no-pager \
- --perf-dir --work-tree --debugfs-dir' -- "$cur" ) )
- else
- cmds=$($cmd --list-cmds)
- COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
- fi
- # List possible events for -e option
- elif [[ $prev == "-e" && "${COMP_WORDS[1]}" == @(record|stat|top) ]]; then
- cmds=$($cmd list --raw-dump)
- COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
- # Fall down to list regular files
- else
- _filedir
- fi
- } &&
- complete -F _perf perf
|