scan-tree: Support gitweb.category.

Use gitweb.category from git config to determine repo's section, if
option is enabled.
Tá an tiomantas seo le fáil i:
Jason A. Donenfeld 2012-07-11 05:32:45 +02:00
tuismitheoir b56be4ba3a
tiomantas fc9181ff3d
D'athraigh 4 comhad le 14 breiseanna agus 0 scriosta

1
cgit.c
Féach ar an gComhad

@ -340,6 +340,7 @@ static void prepare_context(struct cgit_context *ctx)
ctx->cfg.local_time = 0;
ctx->cfg.enable_gitweb_desc = 1;
ctx->cfg.enable_gitweb_owner = 1;
ctx->cfg.enable_gitweb_section = 1;
ctx->cfg.enable_http_clone = 1;
ctx->cfg.enable_tree_linenumbers = 1;
ctx->cfg.max_repo_count = 50;

1
cgit.h
Féach ar an gComhad

@ -200,6 +200,7 @@ struct cgit_config {
int enable_filter_overrides;
int enable_gitweb_owner;
int enable_gitweb_desc;
int enable_gitweb_section;
int enable_http_clone;
int enable_index_links;
int enable_commit_graph;

Féach ar an gComhad

@ -118,6 +118,12 @@ enable-gitweb-owner::
for the git config value "gitweb.owner" to determine the owner.
Default value: "1". See also: scan-path.
enable-gitweb-section::
If set to "1" and scan-path is enabled, we first check each repository
for the git config value "gitweb.category" to determine the repository's
section. This value is overridden if section-from-path is enabled.
Default value: "1". See also: scan-path section-from-path.
enable-http-clone::
If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
If you use an alternate way of serving git repositories, you may wish

Féach ar an gComhad

@ -49,6 +49,7 @@ struct cgit_repo *repo;
repo_config_fn config_fn;
char *owner;
char *desc;
char *section;
static void repo_config(const char *name, const char *value)
{
@ -61,6 +62,8 @@ static int gitweb_config(const char *key, const char *value, void *cb)
owner = xstrdup(value);
else if (ctx.cfg.enable_gitweb_desc && !strcmp(key, "gitweb.description"))
desc = xstrdup(value);
else if (ctx.cfg.enable_gitweb_section && !strcmp(key, "gitweb.category"))
section = xstrdup(value);
return 0;
}
@ -95,6 +98,7 @@ static void add_repo(const char *base, const char *path, repo_config_fn fn)
owner = NULL;
desc = NULL;
section = NULL;
git_config_from_file(gitweb_config, fmt("%s/config", path), NULL);
if (base == path)
@ -137,6 +141,8 @@ static void add_repo(const char *base, const char *path, repo_config_fn fn)
if (!stat(p, &st))
repo->readme = "README.html";
}
if (section)
repo->section = section;
if (ctx.cfg.section_from_path) {
n = ctx.cfg.section_from_path;
if (n > 0) {