# Needs to be here for PAR
require Catalyst;
- if ( $name =~ /[^\w\:]/ ) {
+ if ( $name =~ /[^\w:]/ || $name =~ /^\d/ || $name =~ /\b:\b|:{3,}/) {
warn "Error: Invalid application name.\n";
return 0;
}
$self->{script } = File::Spec->catdir( $self->{dir}, 'script' );
$self->{appprefix } = Catalyst::Utils::appprefix($name);
$self->{appenv } = Catalyst::Utils::class2env($name);
- $self->{startperl } = -r '/usr/bin/env'
- ? '#!/usr/bin/env perl'
+ $self->{startperl } = -r '/usr/bin/env'
+ ? '#!/usr/bin/env perl'
: "#!$Config{perlpath} -w";
$self->{scriptgen } = $Catalyst::Devel::CATALYST_SCRIPT_GEN || 4;
$self->{catalyst_version} = $Catalyst::VERSION;
Catalyst::Helper::View::
Catalyst::Helper::Controller::
-=head2 COMMON HELPERS
+=head2 COMMON HELPERS
=over
=head3 NOTE
-The helpers will read author name from /etc/passwd by default. + To override, please export the AUTHOR variable.
+The helpers will read author name from /etc/passwd by default. + To override, please export the AUTHOR variable.
=head1 METHODS
use strict;
use warnings;
-use Catalyst::Runtime '5.70';
+use Catalyst::Runtime 5.80;
# Set flags and add plugins for the application
#
1;
__makefile__
+[% startperl %]
# IMPORTANT: if you delete this file your app will not work as
-# expected. you have been warned
+# expected. You have been warned.
use inc::Module::Install;
name '[% dir %]';
auto_install;
WriteAll;
__config__
-# rename this file to [% name %].yml and put a : in front of "name" if
-# you want to use yaml like in old versions of Catalyst
+# rename this file to [% name %].yml and put a ':' in front of 'name' if
+# you want to use YAML like in old versions of Catalyst
name [% name %]
__readme__
Run script/[% appprefix %]_server.pl to test the application.
0.01 [% time %]
- initial revision, generated by Catalyst
__apptest__
+[% startperl %]
use strict;
use warnings;
use Test::More tests => 2;
ok( request('/')->is_success, 'Request should succeed' );
__podtest__
+[% startperl %]
use strict;
use warnings;
use Test::More;
all_pod_files_ok();
__podcoveragetest__
+[% startperl %]
use strict;
use warnings;
use Test::More;
pidfile => $pidfile,
manager => $manager,
detach => $detach,
- keep_stderr => $keep_stderr,
+ keep_stderr => $keep_stderr,
}
);
my $port = $ENV{[% appenv %]_PORT} || $ENV{CATALYST_PORT} || 3000;
my $keepalive = 0;
my $restart = $ENV{[% appenv %]_RELOAD} || $ENV{CATALYST_RELOAD} || 0;
+my $background = 0;
+my $pidfile = undef;
my $check_interval;
my $file_regex;
'fork|f' => \$fork,
'help|?' => \$help,
'host=s' => \$host,
- 'port=s' => \$port,
+ 'port|p=s' => \$port,
'keepalive|k' => \$keepalive,
'restart|r' => \$restart,
'restartdelay|rd=s' => \$check_interval,
'restartregex|rr=s' => \$file_regex,
'restartdirectory=s@' => \$watch_directory,
'followsymlinks' => \$follow_symlinks,
+ 'background' => \$background,
+ 'pidfile=s' => \$pidfile,
);
pod2usage(1) if $help;
# need to be reloaded for each restart.
require Catalyst;
+# If this isn't done, then the Catalyst::Devel tests for the restarter
+# fail.
+$| = 1 if $ENV{HARNESS_ACTIVE};
+
my $runner = sub {
# This is require instead of use so that the above environment
# variables can be set at runtime.
[% name %]->run(
$port, $host,
{
- argv => \@argv,
- 'fork' => $fork,
- keepalive => $keepalive,
+ argv => \@argv,
+ 'fork' => $fork,
+ keepalive => $keepalive,
+ background => $background,
+ pidfile => $pidfile,
}
);
};
if ( $restart ) {
+ die "Cannot run in the background and also watch for changed files.\n"
+ if $background;
+
require Catalyst::Restarter;
+ my $subclass = Catalyst::Restarter->pick_subclass;
+
my %args;
- $args{watch_directory} = $watch_directory
+ $args{follow_symlinks} = 1
+ if $follow_symlinks;
+ $args{directories} = $watch_directory
if defined $watch_directory;
- $args{check_interval} = $check_interval
+ $args{sleep_interval} = $check_interval
if defined $check_interval;
- $args{file_regex} = qr/$file_regex/
+ $args{filter} = qr/$file_regex/
if defined $file_regex;
- my $restarter = Catalyst::Restarter->new(
+ my $restarter = $subclass->new(
%args,
- restart_sub => $runner,
+ start_sub => $runner,
+ argv => \@argv,
);
$restarter->run_and_watch;
-r -restart restart when files get modified
(defaults to false)
-rd -restartdelay delay between file checks
+ (ignored if you have Linux::Inotify2 installed)
-rr -restartregex regex match files that trigger
a restart when modified
(defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
-follow_symlinks follow symlinks in search directories
(defaults to false. this is a no-op on Win32)
-background run the process in the background
+ -pidfile specify filename for pid file
+
See also:
perldoc Catalyst::Manual
perldoc Catalyst::Manual::Intro
Examples:
[% appprefix %]_create.pl controller My::Controller
- [% appprefix %]_create.pl controller My::Controller BindLex
[% appprefix %]_create.pl -mechanize controller My::Controller
[% appprefix %]_create.pl view My::View
[% appprefix %]_create.pl view MyView TT