Bug 16357: (QA follow-up) Only initialize Log4perl module
[koha-ffzg.git] / debian / templates / plack.psgi
index 796d3fe..7bfb34f 100644 (file)
 
 use Modern::Perl;
 
-use lib("/usr/share/koha/lib");
-use lib("/usr/share/koha/lib/installer");
-
 use Plack::Builder;
 use Plack::App::CGIBin;
 use Plack::App::Directory;
 use Plack::App::URLMap;
+use Plack::Request;
 
 use Mojo::Server::PSGI;
 
 # Pre-load libraries
 use C4::Boolean;
-use C4::Branch;
 use C4::Koha;
 use C4::Languages;
 use C4::Letters;
@@ -39,6 +36,7 @@ use Koha::Caches;
 use Koha::Cache::Memory::Lite;
 use Koha::Database;
 use Koha::DateUtils;
+use Koha::Logger;
 
 use CGI qw(-utf8 ); # we will loose -utf8 under plack, otherwise
 {
@@ -53,26 +51,44 @@ use CGI qw(-utf8 ); # we will loose -utf8 under plack, otherwise
     };
 }
 
+my $home = $ENV{KOHA_HOME};
 my $intranet = Plack::App::CGIBin->new(
-    root => '/usr/share/koha/intranet/cgi-bin'
+    root => $ENV{DEV_INSTALL}? $home: "$home/intranet/cgi-bin"
 )->to_app;
 
 my $opac = Plack::App::CGIBin->new(
-    root => '/usr/share/koha/opac/cgi-bin/opac'
+    root => $ENV{DEV_INSTALL}? "$home/opac": "$home/opac/cgi-bin/opac"
 )->to_app;
 
 my $apiv1  = builder {
     my $server = Mojo::Server::PSGI->new;
-    $server->load_app('/usr/share/koha/api/v1/app.pl');
+    $server->load_app("$home/api/v1/app.pl");
     $server->to_psgi_app;
 };
 
-builder {
+Koha::Logger->_init;
 
+builder {
     enable "ReverseProxy";
     enable "Plack::Middleware::Static";
 
-    mount '/opac'          => $opac;
-    mount '/intranet'      => $intranet;
-    mount '/api/v1/app.pl' => $apiv1;
+    # + is required so Plack doesn't try to prefix Plack::Middleware::
+    enable "+Koha::Middleware::SetEnv";
+    enable "+Koha::Middleware::RealIP";
+
+    mount '/opac'          => builder {
+        enable 'Log4perl', category => 'plack-opac';
+        enable 'LogWarn';
+        $opac;
+    };
+    mount '/intranet'      => builder {
+        enable 'Log4perl', category => 'plack-intranet';
+        enable 'LogWarn';
+        $intranet;
+    };
+    mount '/api/v1/app.pl' => builder {
+        enable 'Log4perl', category => 'plack-api';
+        enable 'LogWarn';
+        $apiv1;
+    };
 };