Merge branch 'master' into psgi
Florian Ragwitz [Tue, 1 Mar 2011 18:38:45 +0000 (19:38 +0100)]
* master:
  Use ensure_class_loaded, less ugly
  Make all Restarter subclasses immutable
  Version 0.31
  Make pod tests author only
  Fix the test in dist build
  fixed config and template files not getting installed
  added test for checking installed files
  Add built dists to MANIFEST.SKIP
  Version 1.30 after pulling master, duh
  Version 1.29
  Document --proc_title in generated fcgi script
  Not so much use_ok
  Explain why we depend on Module::Install

lib/Catalyst/Helper.pm
share/myapp.psgi.tt [new file with mode: 0644]
t/generated_app.t

index 8aa91c6..0710cd7 100644 (file)
@@ -121,10 +121,9 @@ sub mk_app {
     my $gen_app = ( $self->{scripts} || $self->{makefile} ) ? 0 : 1;
 
     if ($gen_app) {
-        for ( qw/ _mk_dirs _mk_config _mk_appclass _mk_rootclass _mk_readme
-              _mk_changes _mk_apptest _mk_podtest _mk_podcoveragetest
+        for ( qw/ _mk_dirs _mk_config _mk_psgi _mk_appclass _mk_rootclass
+              _mk_readme _mk_changes _mk_apptest _mk_podtest _mk_podcoveragetest
               _mk_images _mk_favicon/ ) {
-            
             $self->$_;
         }
     }
@@ -132,7 +131,7 @@ sub mk_app {
         $self->_mk_makefile;
     }
     if ($gen_scripts) {
-        for ( qw/ _mk_cgi _mk_fastcgi _mk_server 
+        for ( qw/ _mk_cgi _mk_fastcgi _mk_server
                   _mk_test _mk_create _mk_information
         / ) {
               $self->$_;
@@ -141,7 +140,7 @@ sub mk_app {
     return $self->{dir};
 }
 
-## not much of this can really be changed, mk_compclass must be left for 
+## not much of this can really be changed, mk_compclass must be left for
 ## backcompat
 sub mk_component {
     my $self = shift;
@@ -400,6 +399,14 @@ sub _mk_makefile {
     }
 }
 
+sub _mk_psgi {
+    my $self      = shift;
+    my $dir       = $self->{dir};
+    my $appprefix = $self->{appprefix};
+    $self->render_sharedir_file( 'myapp.psgi.tt',
+        file( $dir, "$appprefix.psgi" ) );
+}
+
 sub _mk_config {
     my $self      = shift;
     my $dir       = $self->{dir};
diff --git a/share/myapp.psgi.tt b/share/myapp.psgi.tt
new file mode 100644 (file)
index 0000000..b27850b
--- /dev/null
@@ -0,0 +1,21 @@
+use strict;
+use warnings;
+
+use [% name %];
+use Plack::Middleware::Conditional;
+use Plack::Middleware::ReverseProxy;
+
+my $app = [% name %]->psgi_app;
+
+$app = Plack::Middleware::Conditional->wrap(
+    $app,
+    builder   => sub { Plack::Middleware::ReverseProxy->wrap($_[0]) },
+    condition => sub {
+        my ($env) = @_;
+        return if [% name %]->config->{ignore_frontend_proxy};
+        return $env->{REMOTE_ADDR} eq '127.0.0.1'
+            || [% name %]->config->{using_frontend_proxy};
+    },
+);
+
+$app
index b3a0998..68d65c9 100644 (file)
@@ -55,6 +55,7 @@ lib->import(File::Spec->catdir($dir, 'TestApp', 'lib'));
 my @files = qw|
     Makefile.PL
     testapp.conf
+    testapp.psgi
     lib/TestApp.pm
     lib/TestApp/Controller/Root.pm
     README