summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show 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
@@ -65,19 +65,20 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
65 else if (!strcmp(name, "module-link")) 65 else if (!strcmp(name, "module-link"))
66 repo->module_link= xstrdup(value); 66 repo->module_link= xstrdup(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 == '/')
77 ctx.repo->readme = xstrdup(value); 71 ctx.repo->readme = xstrdup(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}
82 83
83void config_cb(const char *name, const char *value) 84void config_cb(const char *name, const char *value)
@@ -127,8 +128,10 @@ void config_cb(const char *name, const char *value)
127 else if (!strcmp(name, "noheader")) 128 else if (!strcmp(name, "noheader"))
128 ctx.cfg.noheader = atoi(value); 129 ctx.cfg.noheader = atoi(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);
133 else if (!strcmp(name, "enable-log-filecount")) 136 else if (!strcmp(name, "enable-log-filecount"))
134 ctx.cfg.enable_log_filecount = atoi(value); 137 ctx.cfg.enable_log_filecount = atoi(value);
diff --git a/cgit.h b/cgit.h
index 3359be9..ef109aa 100644
--- a/cgit.h
+++ b/cgit.h
@@ -173,8 +173,9 @@ struct cgit_config {
173 int cache_root_ttl; 173 int cache_root_ttl;
174 int cache_scanrc_ttl; 174 int cache_scanrc_ttl;
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;
179 int enable_log_linecount; 180 int enable_log_linecount;
180 int local_time; 181 int local_time;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 46df291..617b7c3 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -87,8 +87,12 @@ embedded::
87 Flag which, when set to "1", will make cgit generate a html fragment 87 Flag which, when set to "1", will make cgit generate a html fragment
88 suitable for embedding in other html pages. Default value: none. See 88 suitable for embedding in other html pages. Default value: none. See
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
93 each repo in the repository index (specifically, to the "summary", 97 each repo in the repository index (specifically, to the "summary",
94 "commit" and "tree" pages). Default value: "0". 98 "commit" and "tree" pages). Default value: "0".
@@ -265,16 +269,18 @@ virtual-root::
265 269
266REPOSITORY SETTINGS 270REPOSITORY 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::
272 A list of space-separated urls which can be used to clone this repo. 277 A list of space-separated urls which can be used to clone this repo.
273 Default value: none. 278 Default value: none.
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::
279 The name of the default branch for this repository. If no such branch 285 The name of the default branch for this repository. If no such branch
280 exists in the repository, the first branch name (when sorted) is used 286 exists in the repository, the first branch name (when sorted) is used
@@ -319,9 +325,10 @@ repo.section::
319 Override the current section name for this repository. Default value: 325 Override the current section name for this repository. Default value:
320 none. 326 none.
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::
326 The relative url used to access the repository. This must be the first 333 The relative url used to access the repository. This must be the first
327 setting specified for each repo. Default value: none. 334 setting specified for each repo. Default value: none.
@@ -331,10 +338,14 @@ REPOSITORY-SPECIFIC CGITRC FILE
331------------------------------- 338-------------------------------
332When the option "scan-path" is used to auto-discover git repositories, cgit 339When 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
339EXAMPLE CGITRC FILE 350EXAMPLE CGITRC FILE
340------------------- 351-------------------