builtin/help.c: add --guide option

Logic, but no actions, included.

The --all commands option, if given, will display the list of
available commands.

The --guide option's list of guides will then be displayed.

The common commands list is only displayed if neither option, nor a
command or guide name, is given.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Philip Oakley 2013-04-02 23:39:50 +01:00 committed by Junio C Hamano
parent 15f7d49438
commit 65f98358c0

View File

@ -36,10 +36,12 @@ enum help_format {
static const char *html_path; static const char *html_path;
static int show_all = 0; static int show_all = 0;
static int show_guides = 0;
static unsigned int colopts; static unsigned int colopts;
static enum help_format help_format = HELP_FORMAT_NONE; static enum help_format help_format = HELP_FORMAT_NONE;
static struct option builtin_help_options[] = { static struct option builtin_help_options[] = {
OPT_BOOL('a', "all", &show_all, N_("print all available commands")), OPT_BOOL('a', "all", &show_all, N_("print all available commands")),
OPT_BOOL('g', "guides", &show_guides, N_("print list of useful guides")),
OPT_SET_INT('m', "man", &help_format, N_("show man page"), HELP_FORMAT_MAN), 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"), OPT_SET_INT('w', "web", &help_format, N_("show manual in web browser"),
HELP_FORMAT_WEB), HELP_FORMAT_WEB),
@ -49,7 +51,7 @@ static struct option builtin_help_options[] = {
}; };
static const char * const builtin_help_usage[] = { static const char * const builtin_help_usage[] = {
N_("git help [--all] [--man|--web|--info] [command]"), N_("git help [--all] [--guides] [--man|--web|--info] [command]"),
NULL NULL
}; };
@ -430,7 +432,11 @@ int cmd_help(int argc, const char **argv, const char *prefix)
list_commands(colopts, &main_cmds, &other_cmds); list_commands(colopts, &main_cmds, &other_cmds);
} }
if (show_all) { if (show_guides) {
/* do action - next patch */
}
if (show_all || show_guides) {
printf("%s\n", _(git_more_info_string)); printf("%s\n", _(git_more_info_string));
/* /*
* We're done. Ignore any remaining args * We're done. Ignore any remaining args