about summary refs log tree commit homepage
path: root/script/public-inbox.cgi
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-02-27 21:57:57 +0000
committerEric Wong <e@80x24.org>2016-02-27 21:57:57 +0000
commit052f26f3ada1042afa5acadbecc48b487f4e2d52 (patch)
treeb6b30f94cdb20534ffc074359db30084c9858fa6 /script/public-inbox.cgi
parent617f35dacbd4e5972bf2d82411b45009bbc79a42 (diff)
downloadpublic-inbox-052f26f3ada1042afa5acadbecc48b487f4e2d52.tar.gz
This seems to match more closely with what is expected of Perl
packages based on how blib is used.  Hopefully makes the top-level
source tree less cluttered and things easier-to-find.
Diffstat (limited to 'script/public-inbox.cgi')
-rwxr-xr-xscript/public-inbox.cgi32
1 files changed, 32 insertions, 0 deletions
diff --git a/script/public-inbox.cgi b/script/public-inbox.cgi
new file mode 100755
index 00000000..ee9510c1
--- /dev/null
+++ b/script/public-inbox.cgi
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -w
+# Copyright (C) 2014-2016 all contributors <meta@public-inbox.org>
+# License: AGPL-3.0+ or later <https://www.gnu.org/licenses/agpl-3.0.txt>
+#
+# Enables using PublicInbox::WWW as a CGI script
+use strict;
+use warnings;
+use Plack::Loader;
+use Plack::Builder;
+use Plack::Request;
+use Plack::Handler::CGI;
+use PublicInbox::WWW;
+BEGIN { PublicInbox::WWW->preload if $ENV{MOD_PERL} }
+my $www = PublicInbox::WWW->new;
+my $have_deflater = eval { require Plack::Middleware::Deflater; 1 };
+my $app = builder {
+        if ($have_deflater) {
+                enable 'Deflater',
+                        content_type => [ 'text/html', 'text/plain',
+                                        'application/atom+xml' ];
+        }
+
+        # Enable to ensure redirects and Atom feed URLs are generated
+        # properly when running behind a reverse proxy server which
+        # sets X-Forwarded-For and X-Forwarded-Proto request headers.
+        # See Plack::Middleware::ReverseProxy documentation for details
+        # enable 'ReverseProxy';
+
+        enable 'Head';
+        sub { $www->call(@_) };
+};
+Plack::Handler::CGI->new->run($app);