Browse Source

Merge branch 'cw/help-over-network'

"git help -w $cmd" can show HTML version of documentation for
"git-$cmd" by setting help.htmlpath to somewhere other than the
default location where the build procedure installs them locally;
the variable can even point at a http:// URL.

* cw/help-over-network:
  Allow help.htmlpath to be a URL prefix
  Add config variable to set HTML path for git-help --web
maint
Junio C Hamano 13 years ago
parent
commit
f697a27aa6
  1. 19
      builtin/help.c

19
builtin/help.c

@ -34,6 +34,8 @@ enum help_format { @@ -34,6 +34,8 @@ enum help_format {
HELP_FORMAT_WEB
};

static const char *html_path;

static int show_all = 0;
static unsigned int colopts;
static enum help_format help_format = HELP_FORMAT_NONE;
@ -265,6 +267,12 @@ static int git_help_config(const char *var, const char *value, void *cb) @@ -265,6 +267,12 @@ static int git_help_config(const char *var, const char *value, void *cb)
help_format = parse_help_format(value);
return 0;
}
if (!strcmp(var, "help.htmlpath")) {
if (!value)
return config_error_nonbool(var);
html_path = xstrdup(value);
return 0;
}
if (!strcmp(var, "man.viewer")) {
if (!value)
return config_error_nonbool(var);
@ -387,12 +395,15 @@ static void show_info_page(const char *git_cmd) @@ -387,12 +395,15 @@ static void show_info_page(const char *git_cmd)
static void get_html_page_path(struct strbuf *page_path, const char *page)
{
struct stat st;
const char *html_path = system_path(GIT_HTML_PATH);
if (!html_path)
html_path = system_path(GIT_HTML_PATH);

/* Check that we have a git documentation directory. */
if (stat(mkpath("%s/git.html", html_path), &st)
|| !S_ISREG(st.st_mode))
die(_("'%s': not a documentation directory."), html_path);
if (!strstr(html_path, "://")) {
if (stat(mkpath("%s/git.html", html_path), &st)
|| !S_ISREG(st.st_mode))
die("'%s': not a documentation directory.", html_path);
}

strbuf_init(page_path, 0);
strbuf_addf(page_path, "%s/%s.html", html_path, page);

Loading…
Cancel
Save