]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - tools/perf/builtin-config.c
perf config: Refactor a duplicated code for obtaining config file name
[karo-tx-linux.git] / tools / perf / builtin-config.c
index 55f04f85b04945a1b9635857b91e3e5e03c7e3ba..80668fa7556ef5731b97c795c5a3a760134a9d8f 100644 (file)
@@ -159,6 +159,7 @@ int cmd_config(int argc, const char **argv)
        int i, ret = 0;
        struct perf_config_set *set;
        char *user_config = mkpath("%s/.perfconfig", getenv("HOME"));
+       const char *config_filename;
 
        argc = parse_options(argc, argv, config_options, config_usage,
                             PARSE_OPT_STOP_AT_NON_OPTION);
@@ -175,6 +176,11 @@ int cmd_config(int argc, const char **argv)
        else if (use_user_config)
                config_exclusive_filename = user_config;
 
+       if (!config_exclusive_filename)
+               config_filename = user_config;
+       else
+               config_filename = config_exclusive_filename;
+
        /*
         * At only 'config' sub-command, individually use the config set
         * because of reinitializing with options config file location.
@@ -192,13 +198,9 @@ int cmd_config(int argc, const char **argv)
                        parse_options_usage(config_usage, config_options, "l", 1);
                } else {
                        ret = show_config(set);
-                       if (ret < 0) {
-                               const char * config_filename = config_exclusive_filename;
-                               if (!config_exclusive_filename)
-                                       config_filename = user_config;
+                       if (ret < 0)
                                pr_err("Nothing configured, "
                                       "please check your %s \n", config_filename);
-                       }
                }
                break;
        default:
@@ -221,13 +223,8 @@ int cmd_config(int argc, const char **argv)
 
                                if (value == NULL)
                                        ret = show_spec_config(set, var);
-                               else {
-                                       const char *config_filename = config_exclusive_filename;
-
-                                       if (!config_exclusive_filename)
-                                               config_filename = user_config;
+                               else
                                        ret = set_config(set, config_filename, var, value);
-                               }
                                free(arg);
                        }
                } else