diff options
Diffstat (limited to 'shared.c')
-rw-r--r-- | shared.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -7,6 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include "cgit.h" | 9 | #include "cgit.h" |
10 | #include <stdio.h> | ||
10 | 11 | ||
11 | struct cgit_repolist cgit_repolist; | 12 | struct cgit_repolist cgit_repolist; |
12 | struct cgit_context ctx; | 13 | struct cgit_context ctx; |
@@ -68,6 +69,7 @@ struct cgit_repo *cgit_add_repo(const char *url) | |||
68 | ret->about_filter = ctx.cfg.about_filter; | 69 | ret->about_filter = ctx.cfg.about_filter; |
69 | ret->commit_filter = ctx.cfg.commit_filter; | 70 | ret->commit_filter = ctx.cfg.commit_filter; |
70 | ret->source_filter = ctx.cfg.source_filter; | 71 | ret->source_filter = ctx.cfg.source_filter; |
72 | ret->clone_url = ctx.cfg.clone_url; | ||
71 | return ret; | 73 | return ret; |
72 | } | 74 | } |
73 | 75 | ||
@@ -367,6 +369,33 @@ int cgit_parse_snapshots_mask(const char *str) | |||
367 | return rv; | 369 | return rv; |
368 | } | 370 | } |
369 | 371 | ||
372 | typedef struct { | ||
373 | char * name; | ||
374 | char * value; | ||
375 | } cgit_env_var; | ||
376 | |||
377 | void cgit_prepare_repo_env(struct cgit_repo * repo) | ||
378 | { | ||
379 | cgit_env_var env_vars[] = { | ||
380 | { .name = "CGIT_REPO_URL", .value = repo->url }, | ||
381 | { .name = "CGIT_REPO_NAME", .value = repo->name }, | ||
382 | { .name = "CGIT_REPO_PATH", .value = repo->path }, | ||
383 | { .name = "CGIT_REPO_OWNER", .value = repo->owner }, | ||
384 | { .name = "CGIT_REPO_DEFBRANCH", .value = repo->defbranch }, | ||
385 | { .name = "CGIT_REPO_SECTION", .value = repo->section }, | ||
386 | { .name = "CGIT_REPO_CLONE_URL", .value = repo->clone_url } | ||
387 | }; | ||
388 | int env_var_count = ARRAY_SIZE(env_vars); | ||
389 | cgit_env_var *p, *q; | ||
390 | static char *warn = "cgit warning: failed to set env: %s=%s\n"; | ||
391 | |||
392 | p = env_vars; | ||
393 | q = p + env_var_count; | ||
394 | for (; p < q; p++) | ||
395 | if (p->value && setenv(p->name, p->value, 1)) | ||
396 | fprintf(stderr, warn, p->name, p->value); | ||
397 | } | ||
398 | |||
370 | int cgit_open_filter(struct cgit_filter *filter) | 399 | int cgit_open_filter(struct cgit_filter *filter) |
371 | { | 400 | { |
372 | 401 | ||