diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-02-18 22:39:43 +0100 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2018-03-10 21:54:38 +0100 |
commit | 6a995f2c172e4497df6683d978c7823647dcb2ed (patch) | |
tree | ed8ca494686e0eb355858ead4384a972f6209a77 /Bugzilla/PSGI.pm | |
parent | 5ee20b480b45ff9c66b7de3e957f7d0b6ed19ddb (diff) | |
download | bugzilla-6a995f2c172e4497df6683d978c7823647dcb2ed.tar.gz bugzilla-6a995f2c172e4497df6683d978c7823647dcb2ed.tar.xz |
initial psgi support
Diffstat (limited to 'Bugzilla/PSGI.pm')
-rw-r--r-- | Bugzilla/PSGI.pm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Bugzilla/PSGI.pm b/Bugzilla/PSGI.pm new file mode 100644 index 000000000..22e08540d --- /dev/null +++ b/Bugzilla/PSGI.pm @@ -0,0 +1,36 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +package Bugzilla::PSGI; +use 5.10.1; +use strict; +use warnings; + +use base qw(Exporter); + +our @EXPORT_OK = qw(compile_cgi); + +sub compile_cgi { + my ($script) = @_; + my $app = Plack::App::WrapCGI->new( script => $script )->to_app; + + return sub { + my ($env) = @_; + Bugzilla::init_page(); + if ($env->{'psgix.cleanup'}) { + push @{ $env->{'psgix.cleanup.handler'} }, \&Bugzilla::_cleanup; + } + + my $res = $app->($env); + Bugzilla::_cleanup() if not $env->{'psgix.cleanup'}; + return $res; + }; +} + + + +1;
\ No newline at end of file |