diff options
| -rw-r--r-- | cgit.c | 15 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 21 | 
3 files changed, 26 insertions, 11 deletions
| @@ -66,17 +66,18 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)  		repo->module_link= xstrdup(value);  	else if (!strcmp(name, "section"))  		repo->section = xstrdup(value); -	else if (!strcmp(name, "about-filter")) -		repo->about_filter = new_filter(value, 0); -	else if (!strcmp(name, "commit-filter")) -		repo->commit_filter = new_filter(value, 0); -	else if (!strcmp(name, "source-filter")) -		repo->source_filter = new_filter(value, 1);  	else if (!strcmp(name, "readme") && value != NULL) {  		if (*value == '/')  			ctx.repo->readme = xstrdup(value);  		else  			ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value)); +	} else if (ctx.cfg.enable_filter_overrides) { +		if (!strcmp(name, "about-filter")) +			repo->about_filter = new_filter(value, 0); +		else if (!strcmp(name, "commit-filter")) +			repo->commit_filter = new_filter(value, 0); +		else if (!strcmp(name, "source-filter")) +			repo->source_filter = new_filter(value, 1);  	}  } @@ -128,6 +129,8 @@ void config_cb(const char *name, const char *value)  		ctx.cfg.noheader = atoi(value);  	else if (!strcmp(name, "snapshots"))  		ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); +	else if (!strcmp(name, "enable-filter-overrides")) +		ctx.cfg.enable_filter_overrides = atoi(value);  	else if (!strcmp(name, "enable-index-links"))  		ctx.cfg.enable_index_links = atoi(value);  	else if (!strcmp(name, "enable-log-filecount")) @@ -174,6 +174,7 @@ struct cgit_config {  	int cache_scanrc_ttl;  	int cache_static_ttl;  	int embedded; +	int enable_filter_overrides;  	int enable_index_links;  	int enable_log_filecount;  	int enable_log_linecount; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 46df291..617b7c3 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -88,6 +88,10 @@ embedded::  	suitable for embedding in other html pages. Default value: none. See  	also: "noheader". +enable-filter-overrides:: +	Flag which, when set to "1", allows all filter settings to be +	overridden in repository-specific cgitrc files. Default value: none. +  enable-index-links::  	Flag which, when set to "1", will make cgit generate extra links for  	each repo in the repository index (specifically, to the "summary", @@ -266,14 +270,16 @@ virtual-root::  REPOSITORY SETTINGS  -------------------  repo.about-filter:: -	Override the default about-filter. Default value: <about-filter>. +	Override the default about-filter. Default value: none. See also: +	"enable-filter-overrides".  repo.clone-url::  	A list of space-separated urls which can be used to clone this repo.  	Default value: none.  repo.commit-filter:: -	Override the default commit-filter. Default value: <commit-filter>. +	Override the default commit-filter. Default value: none. See also: +	"enable-filter-overrides".  repo.defbranch::  	The name of the default branch for this repository. If no such branch @@ -320,7 +326,8 @@ repo.section::  	none.  repo.source-filter:: -	Override the default source-filter. Default value: <source-filter>. +	Override the default source-filter. Default value: none. See also: +	"enable-filter-overrides".  repo.url::  	The relative url used to access the repository. This must be the first @@ -332,8 +339,12 @@ REPOSITORY-SPECIFIC CGITRC FILE  When the option "scan-path" is used to auto-discover git repositories, cgit  will try to parse the file "cgitrc" within any found repository. Such a  repo-specific config file may contain any of the repo-specific options -described above, except "repo.url" and "repo.path". Also, in a repo-specific -config file, the "repo." prefix is dropped from the config option names. +described above, except "repo.url" and "repo.path". Additionally, the "filter" +options are only acknowledged in repo-specific config files when +"enable-filter-overrides" is set to "1". + +Note: the "repo." prefix is dropped from the option names in repo-specific +config files, e.g. "repo.desc" becomes "desc".  EXAMPLE CGITRC FILE | 
