diff options
| author | Felix Hanley <felix@seconddrawer.com.au> | 2010-11-08 19:41:13 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2010-11-08 19:41:13 +0100 | 
| commit | e0c6f23789e4893781bcd5af2281d468991ccf3a (patch) | |
| tree | 1cffe4d35b6404dd59cd0f0a314e11944e37d0f2 | |
| parent | Fix a typo in README, s/ExecCGI/+ExecCGI (diff) | |
| download | cgit-e0c6f23789e4893781bcd5af2281d468991ccf3a.tar.gz cgit-e0c6f23789e4893781bcd5af2281d468991ccf3a.tar.bz2 cgit-e0c6f23789e4893781bcd5af2281d468991ccf3a.zip | |
Add `strict-export` option
This option is used to specify a filename which needs to be present in
the repositories found during `scan-path` processing. By setting this
option to 'git-daemon-export-ok', only repositories explicitly marked
for git daemon export will be included in the cgit configuration.
Signed-off-by: Felix Hanley <felix@seconddrawer.com.au>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to '')
| -rw-r--r-- | cgit.c | 2 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 7 | ||||
| -rw-r--r-- | scan-tree.c | 4 | 
4 files changed, 14 insertions, 0 deletions
| @@ -121,6 +121,8 @@ void config_cb(const char *name, const char *value)  		ctx.cfg.logo_link = xstrdup(value);  	else if (!strcmp(name, "module-link"))  		ctx.cfg.module_link = xstrdup(value); +	else if (!strcmp(name, "strict-export")) +		ctx.cfg.strict_export = xstrdup(value);  	else if (!strcmp(name, "virtual-root")) {  		ctx.cfg.virtual_root = trim_end(value, '/');  		if (!ctx.cfg.virtual_root && (!strcmp(value, "/"))) @@ -176,6 +176,7 @@ struct cgit_config {  	char *script_name;  	char *section;  	char *virtual_root; +	char *strict_export;  	int cache_size;  	int cache_dynamic_ttl;  	int cache_max_create_time; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index ce78d41..75b6584 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -317,6 +317,13 @@ summary-tags::  	Specifies the number of tags to display in the repository "summary"  	view. Default value: "10". +strict-export:: +	Filename which, if specified, needs to be present within the repository +	for cgit to allow access to that repository. This can be used to emulate +	gitweb's EXPORT_OK and STRICT_EXPORT functionality and limit cgit's +	repositories to match those exported by git-daemon. This option MUST come +	before 'scan-path'. +  virtual-root::  	Url which, if specified, will be used as root for all cgit links. It  	will also cause cgit to generate 'virtual urls', i.e. urls like diff --git a/scan-tree.c b/scan-tree.c index b5b50f3..a0e09ce 100644 --- a/scan-tree.c +++ b/scan-tree.c @@ -81,6 +81,10 @@ static void add_repo(const char *base, const char *path, repo_config_fn fn)  			path, strerror(errno), errno);  		return;  	} + +	if (ctx.cfg.strict_export && stat(fmt("%s/%s", path, ctx.cfg.strict_export), &st)) +		return; +  	if (!stat(fmt("%s/noweb", path), &st))  		return; | 
