From mboxrd@z Thu Jan 1 00:00:00 1970 From: ranger at risk.ee (The Ranger) Date: Fri, 27 Nov 2015 20:46:29 -0000 Subject: [PATCH 03/07] Refactor repo list scanning. Message-ID: <1448657213.543929.7286.nullmailer@cypher.risk.ee> --- cgit.c | 18 ++++-------------- scan-tree.c | 5 +++++ scan-tree.h | 1 - 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/cgit.c b/cgit.c index 75fcc92..0a6473d 100644 --- a/cgit.c +++ b/cgit.c @@ -227,9 +227,6 @@ static void config_cb(const char *name, const char *value) else if (!strcmp(name, "scan-path")) if (!ctx.cfg.nocache && ctx.cfg.cache_size) process_cached_repolist(expand_macros(value)); - else if (ctx.cfg.project_list) - scan_projects(expand_macros(value), - ctx.cfg.project_list, repo_config); else scan_tree(expand_macros(value), repo_config); else if (!strcmp(name, "scan-hidden-path")) @@ -870,10 +867,7 @@ static int generate_cached_repolist(const char *path, const char *cached_rc) goto out; } idx = cgit_repolist.count; - if (ctx.cfg.project_list) - scan_projects(path, ctx.cfg.project_list, repo_config); - else - scan_tree(path, repo_config); + scan_tree(path, repo_config); print_repolist(f, &cgit_repolist, idx); if (rename(locked_rc.buf, cached_rc)) fprintf(stderr, "[cgit] Error renaming %s to %s: %s (%d)\n", @@ -901,13 +895,9 @@ static void process_cached_repolist(const char *path) * if we fail to generate a cached repolist, we need to * invoke scan_tree manually. */ - if (generate_cached_repolist(path, cached_rc.buf)) { - if (ctx.cfg.project_list) - scan_projects(path, ctx.cfg.project_list, - repo_config); - else - scan_tree(path, repo_config); - } + if (generate_cached_repolist(path, cached_rc.buf)) + scan_tree(path, repo_config); + goto out; } diff --git a/scan-tree.c b/scan-tree.c index b5a10ff..e17bca9 100644 --- a/scan-tree.c +++ b/scan-tree.c @@ -261,5 +261,10 @@ void scan_projects(const char *path, const char *projectsfile, repo_config_fn fn void scan_tree(const char *path, repo_config_fn fn) { + if (ctx.cfg.project_list) { + scan_projects(path, ctx.cfg.project_list, fn); + return; + } + scan_path(path, path, fn); } diff --git a/scan-tree.h b/scan-tree.h index 1afbd4b..d510d85 100644 --- a/scan-tree.h +++ b/scan-tree.h @@ -1,2 +1 @@ -extern void scan_projects(const char *path, const char *projectsfile, repo_config_fn fn); extern void scan_tree(const char *path, repo_config_fn fn); -- 2.1.4