]> Sergey Matveev's repositories - public-inbox.git/blobdiff - script/public-inbox-httpd
make Plack optional for non-WWW and non-httpd users
[public-inbox.git] / script / public-inbox-httpd
index 8ba42c2f43e1d503b93480a8517db1eb7693faa9..09da505e5028952a60551f7bd2ffc25cf57c7780 100755 (executable)
@@ -1,15 +1,18 @@
 #!/usr/bin/perl -w
-# Copyright (C) 2016 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2020 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 #
 # Standalone HTTP server for public-inbox.
 use strict;
-use warnings;
-use Plack::Util;
 use PublicInbox::Daemon;
-use PublicInbox::HTTP;
-use PublicInbox::HTTPD;
-use Plack::Builder;
+BEGIN {
+       for (qw(Plack::Builder Plack::Util)) {
+               eval("require $_") or die "E: Plack is required for $0\n";
+       }
+       Plack::Builder->import;
+       require PublicInbox::HTTP;
+       require PublicInbox::HTTPD;
+}
 my %httpds;
 my $app;
 my $refresh = sub {
@@ -21,8 +24,8 @@ my $refresh = sub {
                }
        } else {
                require PublicInbox::WWW;
-               PublicInbox::WWW->preload;
                my $www = PublicInbox::WWW->new;
+               $www->preload;
                $app = builder {
                        eval {
                                enable 'Deflater',
@@ -32,8 +35,6 @@ my $refresh = sub {
                                                application/atom+xml
                                                )]
                        };
-                       $@ and warn
-"Plack::Middleware::Deflater missing, bandwidth will be wasted\n";
 
                        eval { enable 'ReverseProxy' };
                        $@ and warn