Merge branch 'nd/command-list'
The list of commands with their various attributes were spread across a few places in the build procedure, but it now is getting a bit more consolidated to allow more automation. * nd/command-list: completion: allow to customize the completable command list completion: add and use --list-cmds=alias completion: add and use --list-cmds=nohelpers Move declaration for alias.c to alias.h completion: reduce completable command list completion: let git provide the completable command list command-list.txt: documentation and guide line help: use command-list.txt for the source of guides help: add "-a --verbose" to list all commands with synopsis git: support --list-cmds=list-<category> completion: implement and use --list-cmds=main,others git --list-cmds: collect command list in a string_list git.c: convert --list-* to --list-cmds=* Remove common-cmds.h help: use command-list.h for common command list generate-cmds.sh: export all commands to command-list.h generate-cmds.sh: factor out synopsis extract code
This commit is contained in:
@ -9,6 +9,7 @@
|
||||
#include "run-command.h"
|
||||
#include "column.h"
|
||||
#include "help.h"
|
||||
#include "alias.h"
|
||||
|
||||
#ifndef DEFAULT_HELP_FORMAT
|
||||
#define DEFAULT_HELP_FORMAT "man"
|
||||
@ -36,6 +37,7 @@ static const char *html_path;
|
||||
|
||||
static int show_all = 0;
|
||||
static int show_guides = 0;
|
||||
static int verbose;
|
||||
static unsigned int colopts;
|
||||
static enum help_format help_format = HELP_FORMAT_NONE;
|
||||
static int exclude_guides;
|
||||
@ -48,6 +50,7 @@ static struct option builtin_help_options[] = {
|
||||
HELP_FORMAT_WEB),
|
||||
OPT_SET_INT('i', "info", &help_format, N_("show info page"),
|
||||
HELP_FORMAT_INFO),
|
||||
OPT__VERBOSE(&verbose, N_("print command description")),
|
||||
OPT_END(),
|
||||
};
|
||||
|
||||
@ -400,38 +403,6 @@ static void show_html_page(const char *git_cmd)
|
||||
open_html(page_path.buf);
|
||||
}
|
||||
|
||||
static struct {
|
||||
const char *name;
|
||||
const char *help;
|
||||
} common_guides[] = {
|
||||
{ "attributes", N_("Defining attributes per path") },
|
||||
{ "everyday", N_("Everyday Git With 20 Commands Or So") },
|
||||
{ "glossary", N_("A Git glossary") },
|
||||
{ "ignore", N_("Specifies intentionally untracked files to ignore") },
|
||||
{ "modules", N_("Defining submodule properties") },
|
||||
{ "revisions", N_("Specifying revisions and ranges for Git") },
|
||||
{ "tutorial", N_("A tutorial introduction to Git (for version 1.5.1 or newer)") },
|
||||
{ "workflows", N_("An overview of recommended workflows with Git") },
|
||||
};
|
||||
|
||||
static void list_common_guides_help(void)
|
||||
{
|
||||
int i, longest = 0;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(common_guides); i++) {
|
||||
if (longest < strlen(common_guides[i].name))
|
||||
longest = strlen(common_guides[i].name);
|
||||
}
|
||||
|
||||
puts(_("The common Git guides are:\n"));
|
||||
for (i = 0; i < ARRAY_SIZE(common_guides); i++) {
|
||||
printf(" %s ", common_guides[i].name);
|
||||
mput_char(' ', longest - strlen(common_guides[i].name));
|
||||
puts(_(common_guides[i].help));
|
||||
}
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
static const char *check_git_cmd(const char* cmd)
|
||||
{
|
||||
char *alias;
|
||||
@ -463,6 +434,11 @@ int cmd_help(int argc, const char **argv, const char *prefix)
|
||||
|
||||
if (show_all) {
|
||||
git_config(git_help_config, NULL);
|
||||
if (verbose) {
|
||||
setup_pager();
|
||||
list_all_cmds_help();
|
||||
return 0;
|
||||
}
|
||||
printf(_("usage: %s%s"), _(git_usage_string), "\n\n");
|
||||
load_command_list("git-", &main_cmds, &other_cmds);
|
||||
list_commands(colopts, &main_cmds, &other_cmds);
|
||||
|
Reference in New Issue
Block a user