Diffstat (limited to 'cgit.c')
| -rw-r--r-- | cgit.c | 89 |
1 files changed, 41 insertions, 48 deletions
@@ -42,55 +42,9 @@ struct cgit_filter *new_filter(const char *cmd, int extra_args) static void process_cached_repolist(const char *path); -void repo_config(struct cgit_repo *repo, const char *name, const char *value) -{ - if (!strcmp(name, "name")) - repo->name = xstrdup(value); - else if (!strcmp(name, "clone-url")) - repo->clone_url = xstrdup(value); - else if (!strcmp(name, "desc")) - repo->desc = xstrdup(value); - else if (!strcmp(name, "owner")) - repo->owner = xstrdup(value); - else if (!strcmp(name, "defbranch")) - repo->defbranch = xstrdup(value); - else if (!strcmp(name, "snapshots")) - repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value); - else if (!strcmp(name, "enable-log-filecount")) - repo->enable_log_filecount = ctx.cfg.enable_log_filecount * atoi(value); - else if (!strcmp(name, "enable-log-linecount")) - repo->enable_log_linecount = ctx.cfg.enable_log_linecount * atoi(value); - else if (!strcmp(name, "max-stats")) - repo->max_stats = cgit_find_stats_period(value, NULL); - else if (!strcmp(name, "module-link")) - repo->module_link= xstrdup(value); - else if (!strcmp(name, "section")) - repo->section = xstrdup(value); - else if (!strcmp(name, "about-filter")) - repo->about_filter = new_filter(value, 0); - else if (!strcmp(name, "commit-filter")) - repo->commit_filter = new_filter(value, 0); - else if (!strcmp(name, "source-filter")) - repo->source_filter = new_filter(value, 1); - else if (!strcmp(name, "readme") && value != NULL) { - if (*value == '/') - ctx.repo->readme = xstrdup(value); - else - ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value)); - } -} - void config_cb(const char *name, const char *value) { - if (!strcmp(name, "section") || !strcmp(name, "repo.group")) - ctx.cfg.section = xstrdup(value); - else if (!strcmp(name, "repo.url")) - ctx.repo = cgit_add_repo(value); - else if (ctx.repo && !strcmp(name, "repo.path")) - ctx.repo->path = trim_end(value, '/'); - else if (ctx.repo && !prefixcmp(name, "repo.")) - repo_config(ctx.repo, name + 5, value); - else if (!strcmp(name, "root-title")) + if (!strcmp(name, "root-title")) ctx.cfg.root_title = xstrdup(value); else if (!strcmp(name, "root-desc")) ctx.cfg.root_desc = xstrdup(value); @@ -189,7 +143,46 @@ void config_cb(const char *name, const char *value) ctx.cfg.local_time = atoi(value); else if (!prefixcmp(name, "mimetype.")) add_mimetype(name + 9, value); - else if (!strcmp(name, "include")) + else if (!strcmp(name, "section") || !strcmp(name, "repo.group")) + ctx.cfg.section = xstrdup(value); + else if (!strcmp(name, "repo.url")) + ctx.repo = cgit_add_repo(value); + else if (!strcmp(name, "repo.name")) + ctx.repo->name = xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.path")) + ctx.repo->path = trim_end(value, '/'); + else if (ctx.repo && !strcmp(name, "repo.clone-url")) + ctx.repo->clone_url = xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.desc")) + ctx.repo->desc = xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.owner")) + ctx.repo->owner = xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.defbranch")) + ctx.repo->defbranch = xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.snapshots")) + ctx.repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value); /* XXX: &? */ + else if (ctx.repo && !strcmp(name, "repo.enable-log-filecount")) + ctx.repo->enable_log_filecount = ctx.cfg.enable_log_filecount * atoi(value); + else if (ctx.repo && !strcmp(name, "repo.enable-log-linecount")) + ctx.repo->enable_log_linecount = ctx.cfg.enable_log_linecount * atoi(value); + else if (ctx.repo && !strcmp(name, "repo.max-stats")) + ctx.repo->max_stats = cgit_find_stats_period(value, NULL); + else if (ctx.repo && !strcmp(name, "repo.module-link")) + ctx.repo->module_link= xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.section")) + ctx.repo->section = xstrdup(value); + else if (ctx.repo && !strcmp(name, "repo.about-filter")) + ctx.repo->about_filter = new_filter(value, 0); + else if (ctx.repo && !strcmp(name, "repo.commit-filter")) + ctx.repo->commit_filter = new_filter(value, 0); + else if (ctx.repo && !strcmp(name, "repo.source-filter")) + ctx.repo->source_filter = new_filter(value, 1); + else if (ctx.repo && !strcmp(name, "repo.readme") && value != NULL) { + if (*value == '/') + ctx.repo->readme = xstrdup(value); + else + ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, value)); + } else if (!strcmp(name, "include")) parse_configfile(value, config_cb); } |