Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964770AbbLBL2R (ORCPT ); Wed, 2 Dec 2015 06:28:17 -0500 Received: from mail-pa0-f68.google.com ([209.85.220.68]:35323 "EHLO mail-pa0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932708AbbLBL0M (ORCPT ); Wed, 2 Dec 2015 06:26:12 -0500 From: Taeung Song To: Arnaldo Carvalho de Melo Cc: linux-kernel@vger.kernel.org, Ingo Molnar , Taeung Song , Namhyung Kim , Jiri Olsa Subject: [PATCH v12 17/22] perf config: Add a option 'skel' to perf-config Date: Wed, 2 Dec 2015 19:54:35 +0900 Message-Id: <1449053680-31931-17-git-send-email-treeze.taeung@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1449053680-31931-1-git-send-email-treeze.taeung@gmail.com> References: <1449053680-31931-1-git-send-email-treeze.taeung@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2678 Lines: 87 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 Cc: Jiri Olsa Signed-off-by: Taeung Song --- 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 d48188e..1f13503 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,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; @@ -418,6 +440,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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/