linux/tools/perf/bash_completion
<<
>>
Prefs
   1# perf completion
   2
   3function_exists()
   4{
   5        declare -F $1 > /dev/null
   6        return $?
   7}
   8
   9function_exists __ltrim_colon_completions ||
  10__ltrim_colon_completions()
  11{
  12        if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
  13                # Remove colon-word prefix from COMPREPLY items
  14                local colon_word=${1%${1##*:}}
  15                local i=${#COMPREPLY[*]}
  16                while [[ $((--i)) -ge 0 ]]; do
  17                        COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}
  18                done
  19        fi
  20}
  21
  22have perf &&
  23_perf()
  24{
  25        local cur prev cmd
  26
  27        COMPREPLY=()
  28        if function_exists _get_comp_words_by_ref; then
  29                _get_comp_words_by_ref -n : cur prev
  30        else
  31                cur=$(_get_cword :)
  32                prev=${COMP_WORDS[COMP_CWORD-1]}
  33        fi
  34
  35        cmd=${COMP_WORDS[0]}
  36
  37        # List perf subcommands or long options
  38        if [ $COMP_CWORD -eq 1 ]; then
  39                if [[ $cur == --* ]]; then
  40                        COMPREPLY=( $( compgen -W '--help --version \
  41                        --exec-path --html-path --paginate --no-pager \
  42                        --perf-dir --work-tree --debugfs-dir' -- "$cur" ) )
  43                else
  44                        cmds=$($cmd --list-cmds)
  45                        COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
  46                fi
  47        # List possible events for -e option
  48        elif [[ $prev == "-e" && "${COMP_WORDS[1]}" == @(record|stat|top) ]]; then
  49                evts=$($cmd list --raw-dump)
  50                COMPREPLY=( $( compgen -W '$evts' -- "$cur" ) )
  51                __ltrim_colon_completions $cur
  52        # List long option names
  53        elif [[ $cur == --* ]];  then
  54                subcmd=${COMP_WORDS[1]}
  55                opts=$($cmd $subcmd --list-opts)
  56                COMPREPLY=( $( compgen -W '$opts' -- "$cur" ) )
  57        # Fall down to list regular files
  58        else
  59                _filedir
  60        fi
  61} &&
  62complete -F _perf perf
  63
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.