[PATCH v2] config: add string mapping for enum config_scope
- From
Emily Shaffer <emilyshaffer@google.com>
- Date
- Dec 11, 2019, 23:38 UTC
- Message-ID
- <20191211233820.185153-1-emilyshaffer@google.com>
If a user is interacting with their config files primarily by the 'git config' command, using the location flags (--global, --system, etc) then they may be more interested to see the scope of the config file they are editing, rather than the filepath.
Signed-off-by: Emily Shaffer <emilyshaffer@google.com> ---
Since v1, the only change is removing locale markers around the strings returned from the helper.
As mentioned in lore.kernel.org/git/20191211232540.GE8464@google.com I'm still not sure whether it's better to return "local" for CONFIG_SCOPE_REPO. Since that's the scope returned for both local and worktree (.git/config, .git/config.worktree) configs, I'm happy to leave it the way it is to indicate "one of the configs in the repo".
- Emily
config.c | 17 +++++++++++++++++ config.h | 1 + 2 files changed, 18 insertions(+)
diff --git a/config.c b/config.c index e7052b3977..baab4a916e 100644 --- a/config.c +++ b/config.c @@ -3312,6 +3312,23 @@ enum config_scope current_config_scope(void) return current_parsing_scope; } +const char *config_scope_to_string(enum config_scope scope) +{ + switch (scope) { + case CONFIG_SCOPE_SYSTEM: + return "system"; + case CONFIG_SCOPE_GLOBAL: + return "global"; + case CONFIG_SCOPE_REPO: + return "repo"; + case CONFIG_SCOPE_CMDLINE: + return "cmdline"; + case CONFIG_SCOPE_UNKNOWN: + default: + return "unknown"; + } +} + int lookup_config(const char **mapping, int nr_mapping, const char *var) { int i; diff --git a/config.h b/config.h index 91fd4c5e96..c8bf296dcc 100644 --- a/config.h +++ b/config.h @@ -303,6 +303,7 @@ enum config_scope { }; enum config_scope current_config_scope(void); +const char *config_scope_to_string(enum config_scope); const char *current_config_origin_type(void); const char *current_config_name(void);
-- 2.24.0.525.g8f36a354ae-goog