Commit-ID:  02fde323b9aaebb4a21e7c0e04759470b6c07594
Gitweb:     http://git.kernel.org/tip/02fde323b9aaebb4a21e7c0e04759470b6c07594
Author:     Yunlong Song <yunlong.s...@huawei.com>
AuthorDate: Wed, 18 Mar 2015 21:35:46 +0800
Committer:  Arnaldo Carvalho de Melo <a...@redhat.com>
CommitDate: Thu, 19 Mar 2015 13:48:56 -0300

perf tools: Fix the bash completion for listing options of perf subcommand

The bash completion does not support listing options for 'perf
kvm|kmem|mem|lock|sched --<TAB>', where 'kvm|kmem|mem|lock|sched' are
all subcommands of perf.

Example:

Before this patch:

 $ perf kvm --<TAB>
 $

As shown above, the options of perf kvm does not come out.

After this patch:

 $ perf kvm --<TAB>
 --alloc    --caller   --input    --line     --raw-ip   --sort
 --verbose

As shown above, the options of perf kvm can come out now.

Signed-off-by: Yunlong Song <yunlong.s...@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <a...@redhat.com>
Cc: Paul Mackerras <pau...@samba.org>
Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
Cc: Wang Nan <wangn...@huawei.com>
Link: 
http://lkml.kernel.org/r/1426685758-25488-2-git-send-email-yunlong.s...@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 tools/perf/perf-completion.sh | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/tools/perf/perf-completion.sh b/tools/perf/perf-completion.sh
index c2595e9..4822ed3 100644
--- a/tools/perf/perf-completion.sh
+++ b/tools/perf/perf-completion.sh
@@ -119,15 +119,18 @@ __perf_main ()
        elif [[ $prev == "-e" && "${words[1]}" == @(record|stat|top) ]]; then
                evts=$($cmd list --raw-dump)
                __perfcomp_colon "$evts" "$cur"
-       # List subcommands for perf commands
-       elif [[ $prev == @(kvm|kmem|mem|lock|sched) ]]; then
-               subcmds=$($cmd $prev --list-cmds)
-               __perfcomp_colon "$subcmds" "$cur"
-       # List long option names
-       elif [[ $cur == --* ]];  then
-               subcmd=${words[1]}
-               opts=$($cmd $subcmd --list-opts)
-               __perfcomp "$opts" "$cur"
+       else
+               # List subcommands for perf commands
+               if [[ $prev == @(kvm|kmem|mem|lock|sched) ]]; then
+                       subcmds=$($cmd $prev --list-cmds)
+                       __perfcomp_colon "$subcmds" "$cur"
+               fi
+               # List long option names
+               if [[ $cur == --* ]];  then
+                       subcmd=${words[1]}
+                       opts=$($cmd $subcmd --list-opts)
+                       __perfcomp "$opts" "$cur"
+               fi
        fi
 }
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to