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 提交者 Lars Hjemli
父節點 49d09d4fd1
當前提交 e0c6f23789
共有 4 個檔案被更改,包括 14 行新增0 行删除

2
cgit.c
查看文件

@ -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
查看文件

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

查看文件

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

查看文件

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