cgit.c: always setup cgit repo environment variables
When cgit learned to setup environment variables for certain repo settings before invoking a filter process, the setup occurred inside cgit_open_filter(). This patch moves the setup out of cgit_open_filter() and into prepare_repo_cmd() to prepare for additional uses of these variables. Reviewed-by: Ferry Huberts <mailings@hupie.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
7
shared.c
7
shared.c
@ -374,7 +374,8 @@ typedef struct {
|
||||
char * value;
|
||||
} cgit_env_var;
|
||||
|
||||
static void prepare_env(struct cgit_repo * repo) {
|
||||
void cgit_prepare_repo_env(struct cgit_repo * repo)
|
||||
{
|
||||
cgit_env_var env_vars[] = {
|
||||
{ .name = "CGIT_REPO_URL", .value = repo->url },
|
||||
{ .name = "CGIT_REPO_NAME", .value = repo->name },
|
||||
@ -395,7 +396,7 @@ static void prepare_env(struct cgit_repo * repo) {
|
||||
fprintf(stderr, warn, p->name, p->value);
|
||||
}
|
||||
|
||||
int cgit_open_filter(struct cgit_filter *filter, struct cgit_repo * repo)
|
||||
int cgit_open_filter(struct cgit_filter *filter)
|
||||
{
|
||||
|
||||
filter->old_stdout = chk_positive(dup(STDOUT_FILENO),
|
||||
@ -406,8 +407,6 @@ int cgit_open_filter(struct cgit_filter *filter, struct cgit_repo * repo)
|
||||
close(filter->pipe_fh[1]);
|
||||
chk_non_negative(dup2(filter->pipe_fh[0], STDIN_FILENO),
|
||||
"Unable to use pipe as STDIN");
|
||||
if (repo)
|
||||
prepare_env(repo);
|
||||
execvp(filter->cmd, filter->argv);
|
||||
die("Unable to exec subprocess %s: %s (%d)", filter->cmd,
|
||||
strerror(errno), errno);
|
||||
|
Reference in New Issue
Block a user