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>
This commit is contained in:
Felix Hanley 2010-11-08 19:41:13 +01:00 committed by Lars Hjemli
parent 49d09d4fd1
commit e0c6f23789
4 changed files with 14 additions and 0 deletions

2
cgit.c
View File

@ -121,6 +121,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.logo_link = xstrdup(value); ctx.cfg.logo_link = xstrdup(value);
else if (!strcmp(name, "module-link")) else if (!strcmp(name, "module-link"))
ctx.cfg.module_link = xstrdup(value); ctx.cfg.module_link = xstrdup(value);
else if (!strcmp(name, "strict-export"))
ctx.cfg.strict_export = xstrdup(value);
else if (!strcmp(name, "virtual-root")) { else if (!strcmp(name, "virtual-root")) {
ctx.cfg.virtual_root = trim_end(value, '/'); ctx.cfg.virtual_root = trim_end(value, '/');
if (!ctx.cfg.virtual_root && (!strcmp(value, "/"))) if (!ctx.cfg.virtual_root && (!strcmp(value, "/")))

1
cgit.h
View File

@ -176,6 +176,7 @@ struct cgit_config {
char *script_name; char *script_name;
char *section; char *section;
char *virtual_root; char *virtual_root;
char *strict_export;
int cache_size; int cache_size;
int cache_dynamic_ttl; int cache_dynamic_ttl;
int cache_max_create_time; int cache_max_create_time;

View File

@ -317,6 +317,13 @@ summary-tags::
Specifies the number of tags to display in the repository "summary" Specifies the number of tags to display in the repository "summary"
view. Default value: "10". 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:: virtual-root::
Url which, if specified, will be used as root for all cgit links. It 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 will also cause cgit to generate 'virtual urls', i.e. urls like

View File

@ -81,6 +81,10 @@ static void add_repo(const char *base, const char *path, repo_config_fn fn)
path, strerror(errno), errno); path, strerror(errno), errno);
return; return;
} }
if (ctx.cfg.strict_export && stat(fmt("%s/%s", path, ctx.cfg.strict_export), &st))
return;
if (!stat(fmt("%s/noweb", path), &st)) if (!stat(fmt("%s/noweb", path), &st))
return; return;