blob: 3d48cee1b5e50452440176ca59c370598ca10551 [file] [log] [blame]
Frederic Weisbecker98a41792012-08-09 16:31:51 +02001# perf completion
2
Namhyung Kima1d668c2012-10-03 00:21:32 +09003function_exists()
4{
5 declare -F $1 > /dev/null
6 return $?
7}
8
Frederic Weisbecker98a41792012-08-09 16:31:51 +02009have perf &&
10_perf()
11{
Namhyung Kima1d668c2012-10-03 00:21:32 +090012 local cur prev cmd
Frederic Weisbecker98a41792012-08-09 16:31:51 +020013
14 COMPREPLY=()
Namhyung Kima1d668c2012-10-03 00:21:32 +090015 if function_exists _get_comp_words_by_ref; then
16 _get_comp_words_by_ref cur prev
17 else
18 cur=$(_get_cword)
19 prev=${COMP_WORDS[COMP_CWORD-1]}
20 fi
Frederic Weisbecker98a41792012-08-09 16:31:51 +020021
22 cmd=${COMP_WORDS[0]}
23
24 # List perf subcommands
25 if [ $COMP_CWORD -eq 1 ]; then
26 cmds=$($cmd --list-cmds)
27 COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
Frederic Weisbeckera3277d22012-08-09 16:31:52 +020028 # List possible events for -e option
29 elif [[ $prev == "-e" && "${COMP_WORDS[1]}" == @(record|stat|top) ]]; then
30 cmds=$($cmd list --raw-dump)
31 COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
Frederic Weisbecker98a41792012-08-09 16:31:51 +020032 # Fall down to list regular files
33 else
34 _filedir
35 fi
36} &&
37complete -F _perf perf