diff options
Diffstat (limited to 'shared.c')
| -rw-r--r-- | shared.c | 7 |
1 files changed, 3 insertions, 4 deletions
| @@ -374,7 +374,8 @@ typedef struct { | |||
| 374 | char * value; | 374 | char * value; |
| 375 | } cgit_env_var; | 375 | } cgit_env_var; |
| 376 | 376 | ||
| 377 | static void prepare_env(struct cgit_repo * repo) { | 377 | void cgit_prepare_repo_env(struct cgit_repo * repo) |
| 378 | { | ||
| 378 | cgit_env_var env_vars[] = { | 379 | cgit_env_var env_vars[] = { |
| 379 | { .name = "CGIT_REPO_URL", .value = repo->url }, | 380 | { .name = "CGIT_REPO_URL", .value = repo->url }, |
| 380 | { .name = "CGIT_REPO_NAME", .value = repo->name }, | 381 | { .name = "CGIT_REPO_NAME", .value = repo->name }, |
| @@ -395,7 +396,7 @@ static void prepare_env(struct cgit_repo * repo) { | |||
| 395 | fprintf(stderr, warn, p->name, p->value); | 396 | fprintf(stderr, warn, p->name, p->value); |
| 396 | } | 397 | } |
| 397 | 398 | ||
| 398 | int cgit_open_filter(struct cgit_filter *filter, struct cgit_repo * repo) | 399 | int cgit_open_filter(struct cgit_filter *filter) |
| 399 | { | 400 | { |
| 400 | 401 | ||
| 401 | filter->old_stdout = chk_positive(dup(STDOUT_FILENO), | 402 | filter->old_stdout = chk_positive(dup(STDOUT_FILENO), |
| @@ -406,8 +407,6 @@ int cgit_open_filter(struct cgit_filter *filter, struct cgit_repo * repo) | |||
| 406 | close(filter->pipe_fh[1]); | 407 | close(filter->pipe_fh[1]); |
| 407 | chk_non_negative(dup2(filter->pipe_fh[0], STDIN_FILENO), | 408 | chk_non_negative(dup2(filter->pipe_fh[0], STDIN_FILENO), |
| 408 | "Unable to use pipe as STDIN"); | 409 | "Unable to use pipe as STDIN"); |
| 409 | if (repo) | ||
| 410 | prepare_env(repo); | ||
| 411 | execvp(filter->cmd, filter->argv); | 410 | execvp(filter->cmd, filter->argv); |
| 412 | die("Unable to exec subprocess %s: %s (%d)", filter->cmd, | 411 | die("Unable to exec subprocess %s: %s (%d)", filter->cmd, |
| 413 | strerror(errno), errno); | 412 | strerror(errno), errno); |
