summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2009-08-24 06:53:21 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 08:22:59 (UTC)
commit2273c2c821bfc77d492d7e97ae38f162d7fc91aa (patch) (unidiff)
tree688acf38d828122c86af88585cd89dbf23efc239
parent007df98d2114fac4e9134cd7bc7e2960d0d730b4 (diff)
downloadcgit-2273c2c821bfc77d492d7e97ae38f162d7fc91aa.zip
cgit-2273c2c821bfc77d492d7e97ae38f162d7fc91aa.tar.gz
cgit-2273c2c821bfc77d492d7e97ae38f162d7fc91aa.tar.bz2
Add config option 'enable-filter-overrides'
This option must be enabled if repo-specific cgitrc files should be allowed to override any of the 'filter' options. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c15
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt21
3 files changed, 26 insertions, 11 deletions
diff --git a/cgit.c b/cgit.c
index 167b5dd..f1ea03c 100644
--- a/cgit.c
+++ b/cgit.c
@@ -67,10 +67,4 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
67 else if (!strcmp(name, "section")) 67 else if (!strcmp(name, "section"))
68 repo->section = xstrdup(value); 68 repo->section = xstrdup(value);
69 else if (!strcmp(name, "about-filter"))
70 repo->about_filter = new_filter(value, 0);
71 else if (!strcmp(name, "commit-filter"))
72 repo->commit_filter = new_filter(value, 0);
73 else if (!strcmp(name, "source-filter"))
74 repo->source_filter = new_filter(value, 1);
75 else if (!strcmp(name, "readme") && value != NULL) { 69 else if (!strcmp(name, "readme") && value != NULL) {
76 if (*value == '/') 70 if (*value == '/')
@@ -78,4 +72,11 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
78 else 72 else
79 ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value)); 73 ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value));
74 } else if (ctx.cfg.enable_filter_overrides) {
75 if (!strcmp(name, "about-filter"))
76 repo->about_filter = new_filter(value, 0);
77 else if (!strcmp(name, "commit-filter"))
78 repo->commit_filter = new_filter(value, 0);
79 else if (!strcmp(name, "source-filter"))
80 repo->source_filter = new_filter(value, 1);
80 } 81 }
81} 82}
@@ -129,4 +130,6 @@ void config_cb(const char *name, const char *value)
129 else if (!strcmp(name, "snapshots")) 130 else if (!strcmp(name, "snapshots"))
130 ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); 131 ctx.cfg.snapshots = cgit_parse_snapshots_mask(value);
132 else if (!strcmp(name, "enable-filter-overrides"))
133 ctx.cfg.enable_filter_overrides = atoi(value);
131 else if (!strcmp(name, "enable-index-links")) 134 else if (!strcmp(name, "enable-index-links"))
132 ctx.cfg.enable_index_links = atoi(value); 135 ctx.cfg.enable_index_links = atoi(value);
diff --git a/cgit.h b/cgit.h
index 3359be9..ef109aa 100644
--- a/cgit.h
+++ b/cgit.h
@@ -175,4 +175,5 @@ struct cgit_config {
175 int cache_static_ttl; 175 int cache_static_ttl;
176 int embedded; 176 int embedded;
177 int enable_filter_overrides;
177 int enable_index_links; 178 int enable_index_links;
178 int enable_log_filecount; 179 int enable_log_filecount;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 46df291..617b7c3 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -89,4 +89,8 @@ embedded::
89 also: "noheader". 89 also: "noheader".
90 90
91enable-filter-overrides::
92 Flag which, when set to "1", allows all filter settings to be
93 overridden in repository-specific cgitrc files. Default value: none.
94
91enable-index-links:: 95enable-index-links::
92 Flag which, when set to "1", will make cgit generate extra links for 96 Flag which, when set to "1", will make cgit generate extra links for
@@ -267,5 +271,6 @@ REPOSITORY SETTINGS
267------------------- 271-------------------
268repo.about-filter:: 272repo.about-filter::
269 Override the default about-filter. Default value: <about-filter>. 273 Override the default about-filter. Default value: none. See also:
274 "enable-filter-overrides".
270 275
271repo.clone-url:: 276repo.clone-url::
@@ -274,5 +279,6 @@ repo.clone-url::
274 279
275repo.commit-filter:: 280repo.commit-filter::
276 Override the default commit-filter. Default value: <commit-filter>. 281 Override the default commit-filter. Default value: none. See also:
282 "enable-filter-overrides".
277 283
278repo.defbranch:: 284repo.defbranch::
@@ -321,5 +327,6 @@ repo.section::
321 327
322repo.source-filter:: 328repo.source-filter::
323 Override the default source-filter. Default value: <source-filter>. 329 Override the default source-filter. Default value: none. See also:
330 "enable-filter-overrides".
324 331
325repo.url:: 332repo.url::
@@ -333,6 +340,10 @@ When the option "scan-path" is used to auto-discover git repositories, cgit
333will try to parse the file "cgitrc" within any found repository. Such a 340will try to parse the file "cgitrc" within any found repository. Such a
334repo-specific config file may contain any of the repo-specific options 341repo-specific config file may contain any of the repo-specific options
335described above, except "repo.url" and "repo.path". Also, in a repo-specific 342described above, except "repo.url" and "repo.path". Additionally, the "filter"
336config file, the "repo." prefix is dropped from the config option names. 343options are only acknowledged in repo-specific config files when
344"enable-filter-overrides" is set to "1".
345
346Note: the "repo." prefix is dropped from the option names in repo-specific
347config files, e.g. "repo.desc" becomes "desc".
337 348
338 349