]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Wrapper.pm
use adminuser
[git.ikiwiki.info.git] / IkiWiki / Wrapper.pm
index 0855a3ba2ede3194d0d71a9697db246c1b619c31..b46bc6aa9794abdca46f68c8dc753e88daf7019b 100644 (file)
@@ -28,10 +28,11 @@ sub gen_wrappers () {
        %config=(%origconfig);
 }
 
        %config=(%origconfig);
 }
 
+our $program_to_wrap = $0;
 sub gen_wrapper () {
        $config{srcdir}=File::Spec->rel2abs($config{srcdir});
        $config{destdir}=File::Spec->rel2abs($config{destdir});
 sub gen_wrapper () {
        $config{srcdir}=File::Spec->rel2abs($config{srcdir});
        $config{destdir}=File::Spec->rel2abs($config{destdir});
-       my $this=File::Spec->rel2abs($0);
+       my $this=File::Spec->rel2abs($program_to_wrap);
        if (! -x $this) {
                error(sprintf(gettext("%s doesn't seem to be executable"), $this));
        }
        if (! -x $this) {
                error(sprintf(gettext("%s doesn't seem to be executable"), $this));
        }
@@ -105,6 +106,14 @@ EOF
                        my $i=int($config{cgi_overload_delay});
                        $pre_exec.="#define CGI_OVERLOAD_DELAY $i\n"
                                if $i > 0;
                        my $i=int($config{cgi_overload_delay});
                        $pre_exec.="#define CGI_OVERLOAD_DELAY $i\n"
                                if $i > 0;
+                       my $msg=gettext("Please wait");
+                       $msg=~s/"/\\"/g;
+                       $pre_exec.='#define CGI_PLEASE_WAIT_TITLE "'.$msg."\"\n";
+                       if (defined $config{cgi_overload_message} && length $config{cgi_overload_message}) {
+                               $msg=$config{cgi_overload_message};
+                               $msg=~s/"/\\"/g;
+                       }
+                       $pre_exec.='#define CGI_PLEASE_WAIT_BODY "'.$msg."\"\n";
                }
                $pre_exec.=<<"EOF";
        lockfd=open("$config{wikistatedir}/cgilock", O_CREAT | O_RDWR, 0666);
                }
                $pre_exec.=<<"EOF";
        lockfd=open("$config{wikistatedir}/cgilock", O_CREAT | O_RDWR, 0666);
@@ -116,9 +125,11 @@ EOF
                                set_cgilock_fd(lockfd);
                        }
                        else {
                                set_cgilock_fd(lockfd);
                        }
                        else {
-                               printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\n<html><head><title>please wait...</title><head><body><p>Please wait ...</p></body></html>",
+                               printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\n<html><head><title>%s</title><head><body><p>%s</p></body></html>",
                                        CGI_OVERLOAD_DELAY,
                                        CGI_OVERLOAD_DELAY,
-                                       getenv("REQUEST_URI"));
+                                       getenv("REQUEST_URI"),
+                                       CGI_PLEASE_WAIT_TITLE,
+                                       CGI_PLEASE_WAIT_BODY);
                                exit(0);
                        }
                }
                                exit(0);
                        }
                }
@@ -171,7 +182,7 @@ void addenv(char *var, char *val) {
        newenviron[i++]=s;
 }
 
        newenviron[i++]=s;
 }
 
-set_cgilock_fd (int lockfd) {
+void set_cgilock_fd (int lockfd) {
        char *fd_s=malloc(8);
        sprintf(fd_s, "%i", lockfd);
        setenv("IKIWIKI_CGILOCK_FD", fd_s, 1);
        char *fd_s=malloc(8);
        sprintf(fd_s, "%i", lockfd);
        setenv("IKIWIKI_CGILOCK_FD", fd_s, 1);