X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/0eabe6f79498e3339205aeff2c79ae1e85498ab4..6f5403c84483db983a47203a490ac86ca87a491b:/IkiWiki/Wrapper.pm?ds=sidebyside diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index bd134c9a3..84cc7540b 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -8,6 +8,26 @@ use File::Spec; use Data::Dumper; use IkiWiki; +sub gen_wrappers () { + debug(gettext("generating wrappers..")); + my %origconfig=(%config); + foreach my $wrapper (@{$config{wrappers}}) { + %config=(%origconfig, %{$wrapper}); + $config{verbose}=$config{setupverbose} + if exists $config{setupverbose}; + $config{syslog}=$config{setupsyslog} + if exists $config{setupsyslog}; + delete @config{qw(setupsyslog setupverbose wrappers genwrappers rebuild)}; + checkconfig(); + if (! $config{cgi} && ! $config{post_commit} && + ! $config{test_receive}) { + $config{post_commit}=1; + } + gen_wrapper(); + } + %config=(%origconfig); +} + sub gen_wrapper () { $config{srcdir}=File::Spec->rel2abs($config{srcdir}); $config{destdir}=File::Spec->rel2abs($config{destdir}); @@ -29,6 +49,7 @@ sub gen_wrapper () { push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI CONTENT_TYPE CONTENT_LENGTH GATEWAY_INTERFACE HTTP_COOKIE REMOTE_USER HTTPS REDIRECT_STATUS + HTTP_HOST SERVER_PORT HTTPS REDIRECT_URL} if $config{cgi}; my $envsave=""; foreach my $var (@envsave) { @@ -108,7 +129,7 @@ EOF #include extern char **environ; -char *newenviron[$#envsave+6]; +char *newenviron[$#envsave+7]; int i=0; void addenv(char *var, char *val) { @@ -127,6 +148,7 @@ $check_commit_hook @wrapper_hooks $envsave newenviron[i++]="HOME=$ENV{HOME}"; + newenviron[i++]="PATH=$ENV{PATH}"; newenviron[i++]="WRAPPED_OPTIONS=$configstring"; #ifdef __TINYC__