perf completion: Factor out compgen stuff
compgen is a bash-builtin; factor out the invocations into a separate function to give us a chance to override it with a zsh equivalent in future patches. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Link: http://lkml.kernel.org/r/1384704807-15779-3-git-send-email-artagnon@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
2cf025e695
commit
12f9dd5042
1 changed files with 10 additions and 5 deletions
|
@ -89,6 +89,11 @@ __ltrim_colon_completions()
|
|||
fi
|
||||
}
|
||||
|
||||
__perfcomp ()
|
||||
{
|
||||
COMPREPLY=( $( compgen -W "$1" -- "$2" ) )
|
||||
}
|
||||
|
||||
__perf_main ()
|
||||
{
|
||||
local cmd
|
||||
|
@ -99,23 +104,23 @@ __perf_main ()
|
|||
# List perf subcommands or long options
|
||||
if [ $cword -eq 1 ]; then
|
||||
if [[ $cur == --* ]]; then
|
||||
COMPREPLY=( $( compgen -W '--help --version \
|
||||
__perfcomp '--help --version \
|
||||
--exec-path --html-path --paginate --no-pager \
|
||||
--perf-dir --work-tree --debugfs-dir' -- "$cur" ) )
|
||||
--perf-dir --work-tree --debugfs-dir' -- "$cur"
|
||||
else
|
||||
cmds=$($cmd --list-cmds)
|
||||
COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
|
||||
__perfcomp "$cmds" "$cur"
|
||||
fi
|
||||
# List possible events for -e option
|
||||
elif [[ $prev == "-e" && "${words[1]}" == @(record|stat|top) ]]; then
|
||||
evts=$($cmd list --raw-dump)
|
||||
COMPREPLY=( $( compgen -W '$evts' -- "$cur" ) )
|
||||
__perfcomp "$evts" "$cur"
|
||||
__ltrim_colon_completions $cur
|
||||
# List long option names
|
||||
elif [[ $cur == --* ]]; then
|
||||
subcmd=${words[1]}
|
||||
opts=$($cmd $subcmd --list-opts)
|
||||
COMPREPLY=( $( compgen -W '$opts' -- "$cur" ) )
|
||||
__perfcomp "$opts" "$cur"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue