Diffstat (limited to 'cgit.c')
| -rw-r--r-- | cgit.c | 38 |
1 files changed, 37 insertions, 1 deletions
@@ -1,6 +1,10 @@ /* cgit.c: cgi for the git scm * * Copyright (C) 2006-2014 cgit Development Team <cgit@lists.zx2c4.com> + * Copyright (C) 2026 Saya Andy <saya.andy@posteo.com> + * + * Modified 2026 by Saya Andy: + * Always check there is git repo on repo.path * * Licensed under GNU General Public License v2 * (see COPYING for full license text) @@ -56,6 +60,20 @@ void cgit_repo_config(struct cgit_repo *repo, const char *name, const char *valu repo->owner = strdup_first_line(value); else if (!strcmp(name, "homepage")) repo->homepage = strdup_first_line(value); + else if (!strcmp(name, "ci-url")) { + repo->ci_url = strdup_first_line(value); + /* An explicit repo.ci-url would otherwise never be used + * when the more specific urls are inherited from the + * global settings, so discard those. + */ + if (repo->ci_branch_url == ctx.cfg.ci_branch_url) + repo->ci_branch_url = NULL; + if (repo->ci_tag_url == ctx.cfg.ci_tag_url) + repo->ci_tag_url = NULL; + } else if (!strcmp(name, "ci-branch-url")) + repo->ci_branch_url = strdup_first_line(value); + else if (!strcmp(name, "ci-tag-url")) + repo->ci_tag_url = strdup_first_line(value); else if (!strcmp(name, "defbranch")) repo->defbranch = strdup_first_line(value); else if (!strcmp(name, "extra-head-content")) @@ -122,6 +140,8 @@ void cgit_repo_config(struct cgit_repo *repo, const char *name, const char *valu repo->email_filter = cgit_new_filter(value, EMAIL); else if (!strcmp(name, "owner-filter")) repo->owner_filter = cgit_new_filter(value, OWNER); + else if (!strcmp(name, "ci-filter")) + repo->ci_filter = cgit_new_filter(value, CI); } } @@ -163,6 +183,12 @@ static void config_cb(const char *name, const char *value) ctx.cfg.logo_link = strdup_first_line(value); else if (!strcmp(name, "module-link")) ctx.cfg.module_link = strdup_first_line(value); + else if (!strcmp(name, "ci-url")) + ctx.cfg.ci_url = strdup_first_line(value); + else if (!strcmp(name, "ci-branch-url")) + ctx.cfg.ci_branch_url = strdup_first_line(value); + else if (!strcmp(name, "ci-tag-url")) + ctx.cfg.ci_tag_url = strdup_first_line(value); else if (!strcmp(name, "strict-export")) ctx.cfg.strict_export = strdup_first_line(value); else if (!strcmp(name, "virtual-root")) @@ -233,6 +259,8 @@ static void config_cb(const char *name, const char *value) ctx.cfg.owner_filter = cgit_new_filter(value, OWNER); else if (!strcmp(name, "auth-filter")) ctx.cfg.auth_filter = cgit_new_filter(value, AUTH); + else if (!strcmp(name, "ci-filter")) + ctx.cfg.ci_filter = cgit_new_filter(value, CI); else if (!strcmp(name, "embedded")) ctx.cfg.embedded = atoi(value); else if (!strcmp(name, "max-atom-items")) @@ -815,6 +843,12 @@ static void print_repo(FILE *f, struct cgit_repo *repo) fprintf(f, "repo.section=%s\n", repo->section); if (repo->homepage) fprintf(f, "repo.homepage=%s\n", repo->homepage); + if (repo->ci_url) + fprintf(f, "repo.ci-url=%s\n", repo->ci_url); + if (repo->ci_branch_url) + fprintf(f, "repo.ci-branch-url=%s\n", repo->ci_branch_url); + if (repo->ci_tag_url) + fprintf(f, "repo.ci-tag-url=%s\n", repo->ci_tag_url); if (repo->clone_url) fprintf(f, "repo.clone-url=%s\n", repo->clone_url); fprintf(f, "repo.enable-blame=%d\n", @@ -837,6 +871,8 @@ static void print_repo(FILE *f, struct cgit_repo *repo) cgit_fprintf_filter(repo->email_filter, f, "repo.email-filter="); if (repo->owner_filter && repo->owner_filter != ctx.cfg.owner_filter) cgit_fprintf_filter(repo->owner_filter, f, "repo.owner-filter="); + if (repo->ci_filter && repo->ci_filter != ctx.cfg.ci_filter) + cgit_fprintf_filter(repo->ci_filter, f, "repo.ci-filter="); if (repo->snapshots != ctx.cfg.snapshots) { char *tmp = build_snapshot_setting(repo->snapshots); fprintf(f, "repo.snapshots=%s\n", tmp ? tmp : ""); @@ -965,7 +1001,7 @@ static void cgit_parse_args(int argc, const char **argv) for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "--version")) { - printf("CGit %s | https://git.zx2c4.com/cgit/\n\nCompiled in features:\n", CGIT_VERSION); + printf("CGit %s | https://sayag.it/cgitext.git | https://git.zx2c4.com/cgit/\n\nCompiled in features:\n", CGIT_VERSION); #ifdef NO_LUA printf("[-] "); #else |