From 3e941dd301fc17905720060a5f6a0d2ea88d5810 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 16 Dec 2022 09:44:50 +0000 Subject: make Plack optional Let's not increase requirements for running this project, since some users will be perfectly fine with curl and CSV output. Furthermore, Plack::Middleware::Deflater is not included in the main Plack distribution, so that requirement should be further separated since it's not required. --- script/mwrap-rproxy | 7 +++---- t/httpd.t | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/script/mwrap-rproxy b/script/mwrap-rproxy index a5572c5..97cca8e 100644 --- a/script/mwrap-rproxy +++ b/script/mwrap-rproxy @@ -3,8 +3,8 @@ # License: GPL-2.0+ # thin wrapper for Devel::Mwrap::Rproxy use v5.12; # strict -use Devel::Mwrap::Rproxy; -use Plack::Runner; +eval { require Plack::Runner } or die "Plack not installed: $@\n"; +require Devel::Mwrap::Rproxy; use Getopt::Long qw(:config no_ignore_case no_auto_abbrev pass_through); my $usage = "$0 --socket-dir=/path/to/socket-dir [PLACKUP_OPTIONS]\n"; my $socket_dir; @@ -28,8 +28,7 @@ Inherited socket (fd=3) is non-blocking, making it blocking. $runner->set_options(listen_sock => $s); } } -if ($gz) { - require Plack::Middleware::Deflater; +if ($gz && eval { require Plack::Middleware::Deflater } and !$@) { $app = Plack::Middleware::Deflater->wrap($app); } $runner->run($app); diff --git a/t/httpd.t b/t/httpd.t index ca90cf0..176c6ed 100644 --- a/t/httpd.t +++ b/t/httpd.t @@ -87,7 +87,9 @@ SKIP: { } SKIP: { - eval { require HTTP::Tiny } or skip 'HTTP::Tiny missing', 1; + for my $m (qw(Plack::Util HTTP::Tiny)) { + eval "require $m" or skip "$m missing", 1; + } my $srv = IO::Socket::INET->new(LocalAddr => '127.0.0.1', ReuseAddr => 1, Proto => 'tcp', Type => SOCK_STREAM, -- cgit v1.2.3-24-ge0c7