summaryrefslogtreecommitdiffabout
path: root/cgit.c
Unidiff
Diffstat (limited to 'cgit.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/cgit.c b/cgit.c
index c263872..eff5b7a 100644
--- a/cgit.c
+++ b/cgit.c
@@ -137,2 +137,4 @@ void config_cb(const char *name, const char *value)
137 ctx.cfg.enable_filter_overrides = atoi(value); 137 ctx.cfg.enable_filter_overrides = atoi(value);
138 else if (!strcmp(name, "enable-gitweb-owner"))
139 ctx.cfg.enable_gitweb_owner = atoi(value);
138 else if (!strcmp(name, "enable-index-links")) 140 else if (!strcmp(name, "enable-index-links"))
@@ -183,2 +185,4 @@ void config_cb(const char *name, const char *value)
183 ctx.cfg.max_commit_count = atoi(value); 185 ctx.cfg.max_commit_count = atoi(value);
186 else if (!strcmp(name, "project-list"))
187 ctx.cfg.project_list = xstrdup(expand_macros(value));
184 else if (!strcmp(name, "scan-path")) 188 else if (!strcmp(name, "scan-path"))
@@ -186,2 +190,5 @@ void config_cb(const char *name, const char *value)
186 process_cached_repolist(expand_macros(value)); 190 process_cached_repolist(expand_macros(value));
191 else if (ctx.cfg.project_list)
192 scan_projects(expand_macros(value),
193 ctx.cfg.project_list, repo_config);
187 else 194 else
@@ -202,2 +209,4 @@ void config_cb(const char *name, const char *value)
202 ctx.cfg.renamelimit = atoi(value); 209 ctx.cfg.renamelimit = atoi(value);
210 else if (!strcmp(name, "remove-suffix"))
211 ctx.cfg.remove_suffix = atoi(value);
203 else if (!strcmp(name, "robots")) 212 else if (!strcmp(name, "robots"))
@@ -288,2 +297,3 @@ static void prepare_context(struct cgit_context *ctx)
288 ctx->cfg.local_time = 0; 297 ctx->cfg.local_time = 0;
298 ctx->cfg.enable_gitweb_owner = 1;
289 ctx->cfg.enable_tree_linenumbers = 1; 299 ctx->cfg.enable_tree_linenumbers = 1;
@@ -297,3 +307,5 @@ static void prepare_context(struct cgit_context *ctx)
297 ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s"; 307 ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s";
308 ctx->cfg.project_list = NULL;
298 ctx->cfg.renamelimit = -1; 309 ctx->cfg.renamelimit = -1;
310 ctx->cfg.remove_suffix = 0;
299 ctx->cfg.robots = "index, nofollow"; 311 ctx->cfg.robots = "index, nofollow";
@@ -576,3 +588,6 @@ static int generate_cached_repolist(const char *path, const char *cached_rc)
576 idx = cgit_repolist.count; 588 idx = cgit_repolist.count;
577 scan_tree(path, repo_config); 589 if (ctx.cfg.project_list)
590 scan_projects(path, ctx.cfg.project_list, repo_config);
591 else
592 scan_tree(path, repo_config);
578 print_repolist(f, &cgit_repolist, idx); 593 print_repolist(f, &cgit_repolist, idx);
@@ -590,5 +605,8 @@ static void process_cached_repolist(const char *path)
590 time_t age; 605 time_t age;
606 unsigned long hash;
591 607
592 cached_rc = xstrdup(fmt("%s/rc-%8x", ctx.cfg.cache_root, 608 hash = hash_str(path);
593 hash_str(path))); 609 if (ctx.cfg.project_list)
610 hash += hash_str(ctx.cfg.project_list);
611 cached_rc = xstrdup(fmt("%s/rc-%8x", ctx.cfg.cache_root, hash));
594 612
@@ -599,4 +617,9 @@ static void process_cached_repolist(const char *path)
599 */ 617 */
600 if (generate_cached_repolist(path, cached_rc)) 618 if (generate_cached_repolist(path, cached_rc)) {
601 scan_tree(path, repo_config); 619 if (ctx.cfg.project_list)
620 scan_projects(path, ctx.cfg.project_list,
621 repo_config);
622 else
623 scan_tree(path, repo_config);
624 }
602 return; 625 return;