浏览代码

perf tools: Add the bash completion for listing subsubcommands of perf timechart

The bash completion does not support listing subsubcommands for 'perf
timechart <TAB>', so fix it.

Example:

Before this patch:

 $ perf timechart <TAB>
 $

As shown above, the subsubcommands of perf timechart does not come out.

After this patch:

 $ perf timechart <TAB>
 record

As shown above, the subsubcommands of perf timechart can come out now.

Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1426685758-25488-12-git-send-email-yunlong.song@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Yunlong Song 10 年之前
父节点
当前提交
33ec0caf6a
共有 2 个文件被更改,包括 5 次插入4 次删除
  1. 4 3
      tools/perf/builtin-timechart.c
  2. 1 1
      tools/perf/perf-completion.sh

+ 4 - 3
tools/perf/builtin-timechart.c

@@ -1958,7 +1958,8 @@ int cmd_timechart(int argc, const char **argv,
 		     parse_time),
 		     parse_time),
 	OPT_END()
 	OPT_END()
 	};
 	};
-	const char * const timechart_usage[] = {
+	const char * const timechart_subcommands[] = { "record", NULL };
+	const char *timechart_usage[] = {
 		"perf timechart [<options>] {record}",
 		"perf timechart [<options>] {record}",
 		NULL
 		NULL
 	};
 	};
@@ -1976,8 +1977,8 @@ int cmd_timechart(int argc, const char **argv,
 		"perf timechart record [<options>]",
 		"perf timechart record [<options>]",
 		NULL
 		NULL
 	};
 	};
-	argc = parse_options(argc, argv, timechart_options, timechart_usage,
-			PARSE_OPT_STOP_AT_NON_OPTION);
+	argc = parse_options_subcommand(argc, argv, timechart_options, timechart_subcommands,
+			timechart_usage, PARSE_OPT_STOP_AT_NON_OPTION);
 
 
 	if (tchart.power_only && tchart.tasks_only) {
 	if (tchart.power_only && tchart.tasks_only) {
 		pr_err("-P and -T options cannot be used at the same time.\n");
 		pr_err("-P and -T options cannot be used at the same time.\n");

+ 1 - 1
tools/perf/perf-completion.sh

@@ -143,7 +143,7 @@ __perf_main ()
 		__perfcomp_colon "$evts" "$cur"
 		__perfcomp_colon "$evts" "$cur"
 	else
 	else
 		# List subcommands for perf commands
 		# List subcommands for perf commands
-		if [[ $prev_skip_opts == @(kvm|kmem|mem|lock|sched|data|help|script|test) ]]; then
+		if [[ $prev_skip_opts == @(kvm|kmem|mem|lock|sched|data|help|script|test|timechart) ]]; then
 			subcmds=$($cmd $prev_skip_opts --list-cmds)
 			subcmds=$($cmd $prev_skip_opts --list-cmds)
 			__perfcomp_colon "$subcmds" "$cur"
 			__perfcomp_colon "$subcmds" "$cur"
 		fi
 		fi