scan-tree: Support gitweb.category.

Use gitweb.category from git config to determine repo's section, if
option is enabled.
此提交包含在:
Jason A. Donenfeld
2012-07-11 05:32:45 +02:00
父節點 b56be4ba3a
當前提交 fc9181ff3d
共有 4 個檔案被更改,包括 14 行新增0 行删除

1
cgit.c
查看文件

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

1
cgit.h
查看文件

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

查看文件

@ -118,6 +118,12 @@ enable-gitweb-owner::
for the git config value "gitweb.owner" to determine the owner. for the git config value "gitweb.owner" to determine the owner.
Default value: "1". See also: scan-path. 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:: enable-http-clone::
If set to "1", cgit will act as an dumb HTTP endpoint for git clones. 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 If you use an alternate way of serving git repositories, you may wish

查看文件

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