Messages in this thread Patch in this message | | | From | Taeung Song <> | Subject | [PATCH v11 19/24] perf config: Add a option 'skel' to perf-config | Date | Tue, 17 Nov 2015 22:53:39 +0900 |
| |
Produce an skeleton with the possible config variables so that one could then use $EDITOR ~/.perfconfig or $(sysconfdir)/perfconfigand go on setting the knobs.
For the syntax examples,
# perf config -k | --skel Initialize the possible config variables on config file. # perf config --skel > ~/.perfconfig
Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/builtin-config.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c index 1073ac4..2f8be59 100644 --- a/tools/perf/builtin-config.c +++ b/tools/perf/builtin-config.c @@ -22,7 +22,8 @@ static const char * const config_usage[] = { enum actions { ACTION_LIST = 1, - ACTION_LIST_ALL + ACTION_LIST_ALL, + ACTION_SKEL } actions; static struct option config_options[] = { @@ -31,6 +32,9 @@ static struct option config_options[] = { OPT_SET_UINT('a', "list-all", &actions, "show current and all possible config" " variables with default values", ACTION_LIST_ALL), + OPT_SET_UINT('k', "skel", &actions, + "produce an skeleton with the possible" + " config variables", ACTION_SKEL), OPT_BOOLEAN(0, "system", &use_system_config, "use system config file"), OPT_BOOLEAN(0, "user", &use_user_config, "use user config file"), OPT_END() @@ -276,6 +280,24 @@ static char *get_value(struct config_item *config) return value; } +static int show_skel_config(void) +{ + char *section; + + for (int i = 0; default_configs[i].type != CONFIG_END; i++) { + struct config_item *config = &default_configs[i]; + char *value = get_value(config); + if (strcmp(section, config->section) != 0) { + section = (char *)config->section; + printf("\n[%s]\n", config->section); + } + printf("\t%s = %s\n", config->name, value); + free(value); + } + + return 0; +} + static int show_all_config(struct list_head *sections) { int i; @@ -412,6 +434,12 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused) perf_config(collect_current_config, §ions); switch (actions) { + case ACTION_SKEL: + if (argc) + parse_options_usage(config_usage, config_options, "k", 1); + else + ret = show_skel_config(); + break; case ACTION_LIST_ALL: if (argc == 0) { ret = show_all_config(§ions); -- 1.9.1
| |