lkml.org 
[lkml]   [2015]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v11 19/24] perf config: Add a option 'skel' to perf-config
    Date
    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, &sections);

    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(&sections);
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-11-17 20:01    [W:4.059 / U:0.312 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site