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->$_;
}
}
$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->$_;
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;
}
}
+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};
--- /dev/null
+use strict;
+use warnings;
+
+use [% name %];
+use Plack::Middleware::Conditional;
+use Plack::Middleware::ReverseProxy;
+
+my $app = [% name %]->raw_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