scan-tree: Support gitweb.category.

Use gitweb.category from git config to determine repo's section, if
option is enabled.
Bu işleme şunda yer alıyor:
Jason A. Donenfeld 2012-07-11 05:32:45 +02:00
ebeveyn b56be4ba3a
işleme fc9181ff3d
4 değiştirilmiş dosya ile 14 ekleme ve 0 silme

1
cgit.c
Dosyayı Görüntüle

@ -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
Dosyayı Görüntüle

@ -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;

Dosyayı Görüntüle

@ -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

Dosyayı Görüntüle

@ -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) {