1
0

Add 'about-filter' and 'repo.about-filter' options

These options can be used to execute a filter command on each about-page,
both top-level and for each repository (repo.about-filter can be used
to override the current about-filter).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Este cometimento está contido em:
Lars Hjemli
2009-08-09 13:27:21 +02:00
ascendente e1782fff8a
cometimento 537c05f138
6 ficheiros modificados com 28 adições e 2 eliminações

4
cgit.c
Ver ficheiro

@@ -90,6 +90,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.cache_static_ttl = atoi(value); ctx.cfg.cache_static_ttl = atoi(value);
else if (!strcmp(name, "cache-dynamic-ttl")) else if (!strcmp(name, "cache-dynamic-ttl"))
ctx.cfg.cache_dynamic_ttl = atoi(value); ctx.cfg.cache_dynamic_ttl = atoi(value);
else if (!strcmp(name, "about-filter"))
ctx.cfg.about_filter = new_filter(value, 0);
else if (!strcmp(name, "commit-filter")) else if (!strcmp(name, "commit-filter"))
ctx.cfg.commit_filter = new_filter(value, 0); ctx.cfg.commit_filter = new_filter(value, 0);
else if (!strcmp(name, "embedded")) else if (!strcmp(name, "embedded"))
@@ -146,6 +148,8 @@ void config_cb(const char *name, const char *value)
ctx.repo->max_stats = cgit_find_stats_period(value, NULL); ctx.repo->max_stats = cgit_find_stats_period(value, NULL);
else if (ctx.repo && !strcmp(name, "repo.module-link")) else if (ctx.repo && !strcmp(name, "repo.module-link"))
ctx.repo->module_link= xstrdup(value); ctx.repo->module_link= xstrdup(value);
else if (ctx.repo && !strcmp(name, "repo.about-filter"))
ctx.repo->about_filter = new_filter(value, 0);
else if (ctx.repo && !strcmp(name, "repo.commit-filter")) else if (ctx.repo && !strcmp(name, "repo.commit-filter"))
ctx.repo->commit_filter = new_filter(value, 0); ctx.repo->commit_filter = new_filter(value, 0);
else if (ctx.repo && !strcmp(name, "repo.source-filter")) else if (ctx.repo && !strcmp(name, "repo.source-filter"))

2
cgit.h
Ver ficheiro

@@ -73,6 +73,7 @@ struct cgit_repo {
int enable_log_linecount; int enable_log_linecount;
int max_stats; int max_stats;
time_t mtime; time_t mtime;
struct cgit_filter *about_filter;
struct cgit_filter *commit_filter; struct cgit_filter *commit_filter;
struct cgit_filter *source_filter; struct cgit_filter *source_filter;
}; };
@@ -185,6 +186,7 @@ struct cgit_config {
int summary_branches; int summary_branches;
int summary_log; int summary_log;
int summary_tags; int summary_tags;
struct cgit_filter *about_filter;
struct cgit_filter *commit_filter; struct cgit_filter *commit_filter;
struct cgit_filter *source_filter; struct cgit_filter *source_filter;
}; };

Ver ficheiro

@@ -16,6 +16,13 @@ lines, and lines starting with '#', are ignored.
GLOBAL SETTINGS GLOBAL SETTINGS
--------------- ---------------
about-filter::
Specifies a command which will be invoked to format the content of
about pages (both top-level and for each repository). The command will
get the content of the about-file on its STDIN, and the STDOUT from the
command will be included verbatim on the about page. Default value:
none.
agefile:: agefile::
Specifies a path, relative to each repository path, which can be used Specifies a path, relative to each repository path, which can be used
to specify the date and time of the youngest commit in the repository. to specify the date and time of the youngest commit in the repository.
@@ -234,6 +241,9 @@ virtual-root::
REPOSITORY SETTINGS REPOSITORY SETTINGS
------------------- -------------------
repo.about-filter::
Override the default about-filter. Default value: <about-filter>.
repo.clone-url:: repo.clone-url::
A list of space-separated urls which can be used to clone this repo. A list of space-separated urls which can be used to clone this repo.
Default value: none. Default value: none.

Ver ficheiro

@@ -62,6 +62,7 @@ struct cgit_repo *cgit_add_repo(const char *url)
ret->module_link = ctx.cfg.module_link; ret->module_link = ctx.cfg.module_link;
ret->readme = NULL; ret->readme = NULL;
ret->mtime = -1; ret->mtime = -1;
ret->about_filter = ctx.cfg.about_filter;
ret->commit_filter = ctx.cfg.commit_filter; ret->commit_filter = ctx.cfg.commit_filter;
ret->source_filter = ctx.cfg.source_filter; ret->source_filter = ctx.cfg.source_filter;
return ret; return ret;

Ver ficheiro

@@ -273,6 +273,11 @@ void cgit_print_repolist()
void cgit_print_site_readme() void cgit_print_site_readme()
{ {
if (ctx.cfg.root_readme) if (!ctx.cfg.root_readme)
return;
if (ctx.cfg.about_filter)
cgit_open_filter(ctx.cfg.about_filter);
html_include(ctx.cfg.root_readme); html_include(ctx.cfg.root_readme);
if (ctx.cfg.about_filter)
cgit_close_filter(ctx.cfg.about_filter);
} }

Ver ficheiro

@@ -83,6 +83,10 @@ void cgit_print_repo_readme(char *path)
} else } else
tmp = ctx.repo->readme; tmp = ctx.repo->readme;
html("<div id='summary'>"); html("<div id='summary'>");
if (ctx.repo->about_filter)
cgit_open_filter(ctx.repo->about_filter);
html_include(tmp); html_include(tmp);
if (ctx.repo->about_filter)
cgit_close_filter(ctx.repo->about_filter);
html("</div>"); html("</div>");
} }