Messages in this thread Patch in this message | | | From | Taeung Song <> | Subject | [PATCH v16 RESEND 3/8] perf config: Add a option 'skel' to perf-config | Date | Fri, 26 Feb 2016 00:07:14 +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@kernel.org> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/Documentation/perf-config.txt | 6 ++++++ tools/perf/builtin-config.c | 32 +++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index d9fb8c3..964879a 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -11,6 +11,8 @@ SYNOPSIS 'perf config' [<file-option>] -l | --list or 'perf config' [<file-option>] -a | --list-all +or +'perf config' [<file-option>] -k | --skel DESCRIPTION ----------- @@ -35,6 +37,10 @@ OPTIONS --list-all:: Show current and all possible config variables with default values. +-k:: +--skel:: + Produce an skeleton with the possible config variables. + CONFIGURATION FILE ------------------ diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c index 8a63119..6ab53b2 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() @@ -282,6 +286,26 @@ static char *get_value(struct config_item *config) return value; } +static int show_skel_config(void) +{ + int i; + const char *section = ""; + + for (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 = 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; @@ -422,6 +446,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); -- 2.5.0
| |