summaryrefslogtreecommitdiff
path: root/builtin/help.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2018-05-26 13:55:24 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-05-29 05:51:28 (GMT)
commit3ac68a93fd2b984e2a7e570217d2646a208ffcc3 (patch)
treea2daa2ec0763d187815899c677681ff7ccb6acf8 /builtin/help.c
parenta46baac61ebc6a8b187f76bcd49b625e0d4f408e (diff)
downloadgit-3ac68a93fd2b984e2a7e570217d2646a208ffcc3.zip
git-3ac68a93fd2b984e2a7e570217d2646a208ffcc3.tar.gz
git-3ac68a93fd2b984e2a7e570217d2646a208ffcc3.tar.bz2
help: add --config to list all available config
Sometimes it helps to list all available config vars so the user can search for something they want. The config man page can also be used but it's harder to search if you want to focus on the variable name, for example. This is not the best way to collect the available config since it's not precise. Ideally we should have a centralized list of config in C code (pretty much like 'struct option'), but that's a lot more work. This will do for now. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/help.c')
-rw-r--r--builtin/help.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/builtin/help.c b/builtin/help.c
index 58e0a55..ccb206e 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -37,6 +37,7 @@ static const char *html_path;
static int show_all = 0;
static int show_guides = 0;
+static int show_config;
static int verbose;
static unsigned int colopts;
static enum help_format help_format = HELP_FORMAT_NONE;
@@ -45,6 +46,7 @@ static struct option builtin_help_options[] = {
OPT_BOOL('a', "all", &show_all, N_("print all available commands")),
OPT_HIDDEN_BOOL(0, "exclude-guides", &exclude_guides, N_("exclude guides")),
OPT_BOOL('g', "guides", &show_guides, N_("print list of useful guides")),
+ OPT_BOOL('c', "config", &show_config, N_("print all configuration variable names")),
OPT_SET_INT('m', "man", &help_format, N_("show man page"), HELP_FORMAT_MAN),
OPT_SET_INT('w', "web", &help_format, N_("show manual in web browser"),
HELP_FORMAT_WEB),
@@ -444,6 +446,13 @@ int cmd_help(int argc, const char **argv, const char *prefix)
list_commands(colopts, &main_cmds, &other_cmds);
}
+ if (show_config) {
+ setup_pager();
+ list_config_help();
+ printf("\n%s\n", _("'git help config' for more information"));
+ return 0;
+ }
+
if (show_guides)
list_common_guides_help();