X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/524de4db2639d37aa7049de4363c5d482cd34a0e..7123178732674268a1dce09277536dcdc68825f5:/IkiWiki/Wrapper.pm diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index 4d92716ff..ff110b5ff 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -37,12 +37,9 @@ sub gen_wrapper () { addenv("$var", s); EOF } - - my $test_receive=""; - if ($config{test_receive}) { - require IkiWiki::Receive; - $test_receive=IkiWiki::Receive::gen_wrapper(); - } + + my @wrapper_hooks; + run_hooks(genwrapper => sub { push @wrapper_hooks, shift->() }); my $check_commit_hook=""; my $pre_exec=""; @@ -120,7 +117,7 @@ int main (int argc, char **argv) { char *s; $check_commit_hook -$test_receive +@wrapper_hooks $envsave newenviron[i++]="HOME=$ENV{HOME}"; newenviron[i++]="WRAPPED_OPTIONS=$configstring"; @@ -139,12 +136,11 @@ $envsave } $pre_exec - execv("$this", argv); + execl("$this", "$this", NULL); perror("exec $this"); exit(1); } EOF - close OUT; my $cc=exists $ENV{CC} ? possibly_foolish_untaint($ENV{CC}) : 'cc'; if (system($cc, "$wrapper.c", "-o", "$wrapper.new") != 0) {