summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2009-08-23 21:00:28 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 08:22:58 (UTC)
commit39398545787179bc8075d64a443f9da3845c4f67 (patch) (unidiff)
treef8710ddde4d91a633d97d9c88c9d21b0abbb8fcf
parente7af002d5c405c82652f739d08ced3908d1f57e7 (diff)
downloadcgit-39398545787179bc8075d64a443f9da3845c4f67.zip
cgit-39398545787179bc8075d64a443f9da3845c4f67.tar.gz
cgit-39398545787179bc8075d64a443f9da3845c4f67.tar.bz2
Add config option 'repo.section'
This option can be used to specify the section name for the current repository. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c2
-rw-r--r--cgitrc.5.txt3
2 files changed, 5 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 013a0fe..7264b8e 100644
--- a/cgit.c
+++ b/cgit.c
@@ -124,96 +124,98 @@ void config_cb(const char *name, const char *value)
124 else 124 else
125 scan_tree(value); 125 scan_tree(value);
126 else if (!strcmp(name, "source-filter")) 126 else if (!strcmp(name, "source-filter"))
127 ctx.cfg.source_filter = new_filter(value, 1); 127 ctx.cfg.source_filter = new_filter(value, 1);
128 else if (!strcmp(name, "summary-log")) 128 else if (!strcmp(name, "summary-log"))
129 ctx.cfg.summary_log = atoi(value); 129 ctx.cfg.summary_log = atoi(value);
130 else if (!strcmp(name, "summary-branches")) 130 else if (!strcmp(name, "summary-branches"))
131 ctx.cfg.summary_branches = atoi(value); 131 ctx.cfg.summary_branches = atoi(value);
132 else if (!strcmp(name, "summary-tags")) 132 else if (!strcmp(name, "summary-tags"))
133 ctx.cfg.summary_tags = atoi(value); 133 ctx.cfg.summary_tags = atoi(value);
134 else if (!strcmp(name, "agefile")) 134 else if (!strcmp(name, "agefile"))
135 ctx.cfg.agefile = xstrdup(value); 135 ctx.cfg.agefile = xstrdup(value);
136 else if (!strcmp(name, "renamelimit")) 136 else if (!strcmp(name, "renamelimit"))
137 ctx.cfg.renamelimit = atoi(value); 137 ctx.cfg.renamelimit = atoi(value);
138 else if (!strcmp(name, "robots")) 138 else if (!strcmp(name, "robots"))
139 ctx.cfg.robots = xstrdup(value); 139 ctx.cfg.robots = xstrdup(value);
140 else if (!strcmp(name, "clone-prefix")) 140 else if (!strcmp(name, "clone-prefix"))
141 ctx.cfg.clone_prefix = xstrdup(value); 141 ctx.cfg.clone_prefix = xstrdup(value);
142 else if (!strcmp(name, "local-time")) 142 else if (!strcmp(name, "local-time"))
143 ctx.cfg.local_time = atoi(value); 143 ctx.cfg.local_time = atoi(value);
144 else if (!prefixcmp(name, "mimetype.")) 144 else if (!prefixcmp(name, "mimetype."))
145 add_mimetype(name + 9, value); 145 add_mimetype(name + 9, value);
146 else if (!strcmp(name, "section") || !strcmp(name, "repo.group")) 146 else if (!strcmp(name, "section") || !strcmp(name, "repo.group"))
147 ctx.cfg.section = xstrdup(value); 147 ctx.cfg.section = xstrdup(value);
148 else if (!strcmp(name, "repo.url")) 148 else if (!strcmp(name, "repo.url"))
149 ctx.repo = cgit_add_repo(value); 149 ctx.repo = cgit_add_repo(value);
150 else if (!strcmp(name, "repo.name")) 150 else if (!strcmp(name, "repo.name"))
151 ctx.repo->name = xstrdup(value); 151 ctx.repo->name = xstrdup(value);
152 else if (ctx.repo && !strcmp(name, "repo.path")) 152 else if (ctx.repo && !strcmp(name, "repo.path"))
153 ctx.repo->path = trim_end(value, '/'); 153 ctx.repo->path = trim_end(value, '/');
154 else if (ctx.repo && !strcmp(name, "repo.clone-url")) 154 else if (ctx.repo && !strcmp(name, "repo.clone-url"))
155 ctx.repo->clone_url = xstrdup(value); 155 ctx.repo->clone_url = xstrdup(value);
156 else if (ctx.repo && !strcmp(name, "repo.desc")) 156 else if (ctx.repo && !strcmp(name, "repo.desc"))
157 ctx.repo->desc = xstrdup(value); 157 ctx.repo->desc = xstrdup(value);
158 else if (ctx.repo && !strcmp(name, "repo.owner")) 158 else if (ctx.repo && !strcmp(name, "repo.owner"))
159 ctx.repo->owner = xstrdup(value); 159 ctx.repo->owner = xstrdup(value);
160 else if (ctx.repo && !strcmp(name, "repo.defbranch")) 160 else if (ctx.repo && !strcmp(name, "repo.defbranch"))
161 ctx.repo->defbranch = xstrdup(value); 161 ctx.repo->defbranch = xstrdup(value);
162 else if (ctx.repo && !strcmp(name, "repo.snapshots")) 162 else if (ctx.repo && !strcmp(name, "repo.snapshots"))
163 ctx.repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value); /* XXX: &? */ 163 ctx.repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value); /* XXX: &? */
164 else if (ctx.repo && !strcmp(name, "repo.enable-log-filecount")) 164 else if (ctx.repo && !strcmp(name, "repo.enable-log-filecount"))
165 ctx.repo->enable_log_filecount = ctx.cfg.enable_log_filecount * atoi(value); 165 ctx.repo->enable_log_filecount = ctx.cfg.enable_log_filecount * atoi(value);
166 else if (ctx.repo && !strcmp(name, "repo.enable-log-linecount")) 166 else if (ctx.repo && !strcmp(name, "repo.enable-log-linecount"))
167 ctx.repo->enable_log_linecount = ctx.cfg.enable_log_linecount * atoi(value); 167 ctx.repo->enable_log_linecount = ctx.cfg.enable_log_linecount * atoi(value);
168 else if (ctx.repo && !strcmp(name, "repo.max-stats")) 168 else if (ctx.repo && !strcmp(name, "repo.max-stats"))
169 ctx.repo->max_stats = cgit_find_stats_period(value, NULL); 169 ctx.repo->max_stats = cgit_find_stats_period(value, NULL);
170 else if (ctx.repo && !strcmp(name, "repo.module-link")) 170 else if (ctx.repo && !strcmp(name, "repo.module-link"))
171 ctx.repo->module_link= xstrdup(value); 171 ctx.repo->module_link= xstrdup(value);
172 else if (ctx.repo && !strcmp(name, "repo.section"))
173 ctx.repo->section = xstrdup(value);
172 else if (ctx.repo && !strcmp(name, "repo.about-filter")) 174 else if (ctx.repo && !strcmp(name, "repo.about-filter"))
173 ctx.repo->about_filter = new_filter(value, 0); 175 ctx.repo->about_filter = new_filter(value, 0);
174 else if (ctx.repo && !strcmp(name, "repo.commit-filter")) 176 else if (ctx.repo && !strcmp(name, "repo.commit-filter"))
175 ctx.repo->commit_filter = new_filter(value, 0); 177 ctx.repo->commit_filter = new_filter(value, 0);
176 else if (ctx.repo && !strcmp(name, "repo.source-filter")) 178 else if (ctx.repo && !strcmp(name, "repo.source-filter"))
177 ctx.repo->source_filter = new_filter(value, 1); 179 ctx.repo->source_filter = new_filter(value, 1);
178 else if (ctx.repo && !strcmp(name, "repo.readme") && value != NULL) { 180 else if (ctx.repo && !strcmp(name, "repo.readme") && value != NULL) {
179 if (*value == '/') 181 if (*value == '/')
180 ctx.repo->readme = xstrdup(value); 182 ctx.repo->readme = xstrdup(value);
181 else 183 else
182 ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value)); 184 ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value));
183 } else if (!strcmp(name, "include")) 185 } else if (!strcmp(name, "include"))
184 parse_configfile(value, config_cb); 186 parse_configfile(value, config_cb);
185} 187}
186 188
187static void querystring_cb(const char *name, const char *value) 189static void querystring_cb(const char *name, const char *value)
188{ 190{
189 if (!value) 191 if (!value)
190 value = ""; 192 value = "";
191 193
192 if (!strcmp(name,"r")) { 194 if (!strcmp(name,"r")) {
193 ctx.qry.repo = xstrdup(value); 195 ctx.qry.repo = xstrdup(value);
194 ctx.repo = cgit_get_repoinfo(value); 196 ctx.repo = cgit_get_repoinfo(value);
195 } else if (!strcmp(name, "p")) { 197 } else if (!strcmp(name, "p")) {
196 ctx.qry.page = xstrdup(value); 198 ctx.qry.page = xstrdup(value);
197 } else if (!strcmp(name, "url")) { 199 } else if (!strcmp(name, "url")) {
198 ctx.qry.url = xstrdup(value); 200 ctx.qry.url = xstrdup(value);
199 cgit_parse_url(value); 201 cgit_parse_url(value);
200 } else if (!strcmp(name, "qt")) { 202 } else if (!strcmp(name, "qt")) {
201 ctx.qry.grep = xstrdup(value); 203 ctx.qry.grep = xstrdup(value);
202 } else if (!strcmp(name, "q")) { 204 } else if (!strcmp(name, "q")) {
203 ctx.qry.search = xstrdup(value); 205 ctx.qry.search = xstrdup(value);
204 } else if (!strcmp(name, "h")) { 206 } else if (!strcmp(name, "h")) {
205 ctx.qry.head = xstrdup(value); 207 ctx.qry.head = xstrdup(value);
206 ctx.qry.has_symref = 1; 208 ctx.qry.has_symref = 1;
207 } else if (!strcmp(name, "id")) { 209 } else if (!strcmp(name, "id")) {
208 ctx.qry.sha1 = xstrdup(value); 210 ctx.qry.sha1 = xstrdup(value);
209 ctx.qry.has_sha1 = 1; 211 ctx.qry.has_sha1 = 1;
210 } else if (!strcmp(name, "id2")) { 212 } else if (!strcmp(name, "id2")) {
211 ctx.qry.sha2 = xstrdup(value); 213 ctx.qry.sha2 = xstrdup(value);
212 ctx.qry.has_sha1 = 1; 214 ctx.qry.has_sha1 = 1;
213 } else if (!strcmp(name, "ofs")) { 215 } else if (!strcmp(name, "ofs")) {
214 ctx.qry.ofs = atoi(value); 216 ctx.qry.ofs = atoi(value);
215 } else if (!strcmp(name, "path")) { 217 } else if (!strcmp(name, "path")) {
216 ctx.qry.path = trim_end(value, '/'); 218 ctx.qry.path = trim_end(value, '/');
217 } else if (!strcmp(name, "name")) { 219 } else if (!strcmp(name, "name")) {
218 ctx.qry.name = xstrdup(value); 220 ctx.qry.name = xstrdup(value);
219 } else if (!strcmp(name, "mimetype")) { 221 } else if (!strcmp(name, "mimetype")) {
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 4d009f9..e99c9f7 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -270,96 +270,99 @@ repo.about-filter::
270 270
271repo.clone-url:: 271repo.clone-url::
272 A list of space-separated urls which can be used to clone this repo. 272 A list of space-separated urls which can be used to clone this repo.
273 Default value: none. 273 Default value: none.
274 274
275repo.commit-filter:: 275repo.commit-filter::
276 Override the default commit-filter. Default value: <commit-filter>. 276 Override the default commit-filter. Default value: <commit-filter>.
277 277
278repo.defbranch:: 278repo.defbranch::
279 The name of the default branch for this repository. If no such branch 279 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 280 exists in the repository, the first branch name (when sorted) is used
281 as default instead. Default value: "master". 281 as default instead. Default value: "master".
282 282
283repo.desc:: 283repo.desc::
284 The value to show as repository description. Default value: none. 284 The value to show as repository description. Default value: none.
285 285
286repo.enable-log-filecount:: 286repo.enable-log-filecount::
287 A flag which can be used to disable the global setting 287 A flag which can be used to disable the global setting
288 `enable-log-filecount'. Default value: none. 288 `enable-log-filecount'. Default value: none.
289 289
290repo.enable-log-linecount:: 290repo.enable-log-linecount::
291 A flag which can be used to disable the global setting 291 A flag which can be used to disable the global setting
292 `enable-log-linecount'. Default value: none. 292 `enable-log-linecount'. Default value: none.
293 293
294repo.max-stats:: 294repo.max-stats::
295 Override the default maximum statistics period. Valid values are equal 295 Override the default maximum statistics period. Valid values are equal
296 to the values specified for the global "max-stats" setting. Default 296 to the values specified for the global "max-stats" setting. Default
297 value: none. 297 value: none.
298 298
299repo.name:: 299repo.name::
300 The value to show as repository name. Default value: <repo.url>. 300 The value to show as repository name. Default value: <repo.url>.
301 301
302repo.owner:: 302repo.owner::
303 A value used to identify the owner of the repository. Default value: 303 A value used to identify the owner of the repository. Default value:
304 none. 304 none.
305 305
306repo.path:: 306repo.path::
307 An absolute path to the repository directory. For non-bare repositories 307 An absolute path to the repository directory. For non-bare repositories
308 this is the .git-directory. Default value: none. 308 this is the .git-directory. Default value: none.
309 309
310repo.readme:: 310repo.readme::
311 A path (relative to <repo.path>) which specifies a file to include 311 A path (relative to <repo.path>) which specifies a file to include
312 verbatim as the "About" page for this repo. Default value: none. 312 verbatim as the "About" page for this repo. Default value: none.
313 313
314repo.snapshots:: 314repo.snapshots::
315 A mask of allowed snapshot-formats for this repo, restricted by the 315 A mask of allowed snapshot-formats for this repo, restricted by the
316 "snapshots" global setting. Default value: <snapshots>. 316 "snapshots" global setting. Default value: <snapshots>.
317 317
318repo.section::
319 Override the current section for this repository. Default value: none.
320
318repo.source-filter:: 321repo.source-filter::
319 Override the default source-filter. Default value: <source-filter>. 322 Override the default source-filter. Default value: <source-filter>.
320 323
321repo.url:: 324repo.url::
322 The relative url used to access the repository. This must be the first 325 The relative url used to access the repository. This must be the first
323 setting specified for each repo. Default value: none. 326 setting specified for each repo. Default value: none.
324 327
325 328
326EXAMPLE CGITRC FILE 329EXAMPLE CGITRC FILE
327------------------- 330-------------------
328 331
329.... 332....
330# Enable caching of up to 1000 output entriess 333# Enable caching of up to 1000 output entriess
331cache-size=1000 334cache-size=1000
332 335
333 336
334# Specify some default clone prefixes 337# Specify some default clone prefixes
335clone-prefix=git://foobar.com ssh://foobar.com/pub/git http://foobar.com/git 338clone-prefix=git://foobar.com ssh://foobar.com/pub/git http://foobar.com/git
336 339
337# Specify the css url 340# Specify the css url
338css=/css/cgit.css 341css=/css/cgit.css
339 342
340 343
341# Show extra links for each repository on the index page 344# Show extra links for each repository on the index page
342enable-index-links=1 345enable-index-links=1
343 346
344 347
345# Show number of affected files per commit on the log pages 348# Show number of affected files per commit on the log pages
346enable-log-filecount=1 349enable-log-filecount=1
347 350
348 351
349# Show number of added/removed lines per commit on the log pages 352# Show number of added/removed lines per commit on the log pages
350enable-log-linecount=1 353enable-log-linecount=1
351 354
352 355
353# Add a cgit favicon 356# Add a cgit favicon
354favicon=/favicon.ico 357favicon=/favicon.ico
355 358
356 359
357# Use a custom logo 360# Use a custom logo
358logo=/img/mylogo.png 361logo=/img/mylogo.png
359 362
360 363
361# Enable statistics per week, month and quarter 364# Enable statistics per week, month and quarter
362max-stats=quarter 365max-stats=quarter
363 366
364 367
365# Set the title and heading of the repository index page 368# Set the title and heading of the repository index page