]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox.cgi
move executables to script/ directory
[public-inbox.git] / script / public-inbox.cgi
diff --git a/script/public-inbox.cgi b/script/public-inbox.cgi
new file mode 100755 (executable)
index 0000000..ee9510c
--- /dev/null
@@ -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);