summaryrefslogtreecommitdiffabout
path: root/cgit.c
authorJohan Herland <johan@herland.net>2010-11-15 19:41:00 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2011-02-19 13:25:14 (UTC)
commitdf522794c38934be3229a11e0e2432a1f2a3bc8d (patch) (unidiff)
treef11aef6d303a5327303a4471d47444764bea53d8 /cgit.c
parent682adbc0cad2baa1a6119013b166f52de3ee3352 (diff)
downloadcgit-df522794c38934be3229a11e0e2432a1f2a3bc8d.zip
cgit-df522794c38934be3229a11e0e2432a1f2a3bc8d.tar.gz
cgit-df522794c38934be3229a11e0e2432a1f2a3bc8d.tar.bz2
scan_path(): Do not recurse into hidden directories by default
Paths that start with a period ('.') are considered hidden in the Unix world. scan_path() should arguably not recurse into these directories by default. This patch makes it so, and introduces the "scan-hidden-path" config variable for overriding the new default and revert to the old behaviour (scanning _all_ directories, including hidden .directories). Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <larsh@prediktor.no>
Diffstat (limited to 'cgit.c') (more/less context) (show whitespace changes)
-rw-r--r--cgit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 412fbf0..6a76281 100644
--- a/cgit.c
+++ b/cgit.c
@@ -186,24 +186,26 @@ void config_cb(const char *name, const char *value)
186 else if (!strcmp(name, "max-commit-count")) 186 else if (!strcmp(name, "max-commit-count"))
187 ctx.cfg.max_commit_count = atoi(value); 187 ctx.cfg.max_commit_count = atoi(value);
188 else if (!strcmp(name, "project-list")) 188 else if (!strcmp(name, "project-list"))
189 ctx.cfg.project_list = xstrdup(expand_macros(value)); 189 ctx.cfg.project_list = xstrdup(expand_macros(value));
190 else if (!strcmp(name, "scan-path")) 190 else if (!strcmp(name, "scan-path"))
191 if (!ctx.cfg.nocache && ctx.cfg.cache_size) 191 if (!ctx.cfg.nocache && ctx.cfg.cache_size)
192 process_cached_repolist(expand_macros(value)); 192 process_cached_repolist(expand_macros(value));
193 else if (ctx.cfg.project_list) 193 else if (ctx.cfg.project_list)
194 scan_projects(expand_macros(value), 194 scan_projects(expand_macros(value),
195 ctx.cfg.project_list, repo_config); 195 ctx.cfg.project_list, repo_config);
196 else 196 else
197 scan_tree(expand_macros(value), repo_config); 197 scan_tree(expand_macros(value), repo_config);
198 else if (!strcmp(name, "scan-hidden-path"))
199 ctx.cfg.scan_hidden_path = atoi(value);
198 else if (!strcmp(name, "section-from-path")) 200 else if (!strcmp(name, "section-from-path"))
199 ctx.cfg.section_from_path = atoi(value); 201 ctx.cfg.section_from_path = atoi(value);
200 else if (!strcmp(name, "source-filter")) 202 else if (!strcmp(name, "source-filter"))
201 ctx.cfg.source_filter = new_filter(value, 1); 203 ctx.cfg.source_filter = new_filter(value, 1);
202 else if (!strcmp(name, "summary-log")) 204 else if (!strcmp(name, "summary-log"))
203 ctx.cfg.summary_log = atoi(value); 205 ctx.cfg.summary_log = atoi(value);
204 else if (!strcmp(name, "summary-branches")) 206 else if (!strcmp(name, "summary-branches"))
205 ctx.cfg.summary_branches = atoi(value); 207 ctx.cfg.summary_branches = atoi(value);
206 else if (!strcmp(name, "summary-tags")) 208 else if (!strcmp(name, "summary-tags"))
207 ctx.cfg.summary_tags = atoi(value); 209 ctx.cfg.summary_tags = atoi(value);
208 else if (!strcmp(name, "side-by-side-diffs")) 210 else if (!strcmp(name, "side-by-side-diffs"))
209 ctx.cfg.ssdiff = atoi(value); 211 ctx.cfg.ssdiff = atoi(value);
@@ -306,24 +308,25 @@ static void prepare_context(struct cgit_context *ctx)
306 ctx->cfg.max_lock_attempts = 5; 308 ctx->cfg.max_lock_attempts = 5;
307 ctx->cfg.max_msg_len = 80; 309 ctx->cfg.max_msg_len = 80;
308 ctx->cfg.max_repodesc_len = 80; 310 ctx->cfg.max_repodesc_len = 80;
309 ctx->cfg.max_blob_size = 0; 311 ctx->cfg.max_blob_size = 0;
310 ctx->cfg.max_stats = 0; 312 ctx->cfg.max_stats = 0;
311 ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s"; 313 ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s";
312 ctx->cfg.project_list = NULL; 314 ctx->cfg.project_list = NULL;
313 ctx->cfg.renamelimit = -1; 315 ctx->cfg.renamelimit = -1;
314 ctx->cfg.remove_suffix = 0; 316 ctx->cfg.remove_suffix = 0;
315 ctx->cfg.robots = "index, nofollow"; 317 ctx->cfg.robots = "index, nofollow";
316 ctx->cfg.root_title = "Git repository browser"; 318 ctx->cfg.root_title = "Git repository browser";
317 ctx->cfg.root_desc = "a fast webinterface for the git dscm"; 319 ctx->cfg.root_desc = "a fast webinterface for the git dscm";
320 ctx->cfg.scan_hidden_path = 0;
318 ctx->cfg.script_name = CGIT_SCRIPT_NAME; 321 ctx->cfg.script_name = CGIT_SCRIPT_NAME;
319 ctx->cfg.section = ""; 322 ctx->cfg.section = "";
320 ctx->cfg.summary_branches = 10; 323 ctx->cfg.summary_branches = 10;
321 ctx->cfg.summary_log = 10; 324 ctx->cfg.summary_log = 10;
322 ctx->cfg.summary_tags = 10; 325 ctx->cfg.summary_tags = 10;
323 ctx->cfg.max_atom_items = 10; 326 ctx->cfg.max_atom_items = 10;
324 ctx->cfg.ssdiff = 0; 327 ctx->cfg.ssdiff = 0;
325 ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG")); 328 ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG"));
326 ctx->env.http_host = xstrdupn(getenv("HTTP_HOST")); 329 ctx->env.http_host = xstrdupn(getenv("HTTP_HOST"));
327 ctx->env.https = xstrdupn(getenv("HTTPS")); 330 ctx->env.https = xstrdupn(getenv("HTTPS"));
328 ctx->env.no_http = xstrdupn(getenv("NO_HTTP")); 331 ctx->env.no_http = xstrdupn(getenv("NO_HTTP"));
329 ctx->env.path_info = xstrdupn(getenv("PATH_INFO")); 332 ctx->env.path_info = xstrdupn(getenv("PATH_INFO"));