author | Lars Hjemli <hjemli@gmail.com> | 2009-08-23 22:04:58 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-08-24 08:22:58 (UTC) |
commit | 74061ed5f03e72796450aa3b8ca1cf6ced5d59e2 (patch) (unidiff) | |
tree | 235ab2c29c027f19b00da815af3bf1d2856edc21 /cgit.c | |
parent | a1b3938f711c9b0e5eedad1678535e5779da82c1 (diff) | |
download | cgit-74061ed5f03e72796450aa3b8ca1cf6ced5d59e2.zip cgit-74061ed5f03e72796450aa3b8ca1cf6ced5d59e2.tar.gz cgit-74061ed5f03e72796450aa3b8ca1cf6ced5d59e2.tar.bz2 |
Add support for repo-local cgitrc file
When recursively scanning a directory tree looking for git repositories,
cgit will now parse cgitrc files found within such repositories.
The repo-specific config files can include any repo-specific options
except 'repo.url' and 'repo.path'. Also, in such config files the 'repo.'
prefix can not be used, i.e. the valid options then becomes:
* name
* clone-url
* desc
* ower
* defbranch
* snapshots
* enable-log-filecount
* enable-log-linecount
* max-stats
* module-link
* section
* about-filter
* commit-filter
* source-filter
* readme
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -167,9 +167,9 @@ void config_cb(const char *name, const char *value) | |||
167 | else if (!strcmp(name, "scan-path")) | 167 | else if (!strcmp(name, "scan-path")) |
168 | if (!ctx.cfg.nocache && ctx.cfg.cache_size) | 168 | if (!ctx.cfg.nocache && ctx.cfg.cache_size) |
169 | process_cached_repolist(value); | 169 | process_cached_repolist(value); |
170 | else | 170 | else |
171 | scan_tree(value); | 171 | scan_tree(value, repo_config); |
172 | else if (!strcmp(name, "source-filter")) | 172 | else if (!strcmp(name, "source-filter")) |
173 | ctx.cfg.source_filter = new_filter(value, 1); | 173 | ctx.cfg.source_filter = new_filter(value, 1); |
174 | else if (!strcmp(name, "summary-log")) | 174 | else if (!strcmp(name, "summary-log")) |
175 | ctx.cfg.summary_log = atoi(value); | 175 | ctx.cfg.summary_log = atoi(value); |
@@ -475,9 +475,9 @@ static int generate_cached_repolist(const char *path, const char *cached_rc) | |||
475 | locked_rc, strerror(errno), errno); | 475 | locked_rc, strerror(errno), errno); |
476 | return errno; | 476 | return errno; |
477 | } | 477 | } |
478 | idx = cgit_repolist.count; | 478 | idx = cgit_repolist.count; |
479 | scan_tree(path); | 479 | scan_tree(path, repo_config); |
480 | print_repolist(f, &cgit_repolist, idx); | 480 | print_repolist(f, &cgit_repolist, idx); |
481 | if (rename(locked_rc, cached_rc)) | 481 | if (rename(locked_rc, cached_rc)) |
482 | fprintf(stderr, "[cgit] Error renaming %s to %s: %s (%d)\n", | 482 | fprintf(stderr, "[cgit] Error renaming %s to %s: %s (%d)\n", |
483 | locked_rc, cached_rc, strerror(errno), errno); | 483 | locked_rc, cached_rc, strerror(errno), errno); |
@@ -499,9 +499,9 @@ static void process_cached_repolist(const char *path) | |||
499 | * if we fail to generate a cached repolist, we need to | 499 | * if we fail to generate a cached repolist, we need to |
500 | * invoke scan_tree manually. | 500 | * invoke scan_tree manually. |
501 | */ | 501 | */ |
502 | if (generate_cached_repolist(path, cached_rc)) | 502 | if (generate_cached_repolist(path, cached_rc)) |
503 | scan_tree(path); | 503 | scan_tree(path, repo_config); |
504 | return; | 504 | return; |
505 | } | 505 | } |
506 | 506 | ||
507 | parse_configfile(cached_rc, config_cb); | 507 | parse_configfile(cached_rc, config_cb); |
@@ -558,9 +558,9 @@ static void cgit_parse_args(int argc, const char **argv) | |||
558 | } | 558 | } |
559 | if (!strncmp(argv[i], "--scan-tree=", 12) || | 559 | if (!strncmp(argv[i], "--scan-tree=", 12) || |
560 | !strncmp(argv[i], "--scan-path=", 12)) { | 560 | !strncmp(argv[i], "--scan-path=", 12)) { |
561 | scan++; | 561 | scan++; |
562 | scan_tree(argv[i] + 12); | 562 | scan_tree(argv[i] + 12, repo_config); |
563 | } | 563 | } |
564 | } | 564 | } |
565 | if (scan) { | 565 | if (scan) { |
566 | qsort(cgit_repolist.repos, cgit_repolist.count, | 566 | qsort(cgit_repolist.repos, cgit_repolist.count, |