diff options
Diffstat (limited to '')
| -rw-r--r-- | cgit.c | 1 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 6 | ||||
| -rw-r--r-- | scan-tree.c | 6 | 
4 files changed, 14 insertions, 0 deletions
| @@ -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; @@ -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; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 86a19a9..d1a90c5 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -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 diff --git a/scan-tree.c b/scan-tree.c index 3d4e417..50eedea 100644 --- a/scan-tree.c +++ b/scan-tree.c @@ -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) { | 
