[Catalyst-commits] r10380 - trunk/examples/SmokeServer/script
caelum at dev.catalyst.perl.org
caelum at dev.catalyst.perl.org
Sat May 30 00:20:51 GMT 2009
Author: caelum
Date: 2009-05-30 00:20:51 +0000 (Sat, 30 May 2009)
New Revision: 10380
Modified:
trunk/examples/SmokeServer/script/smokeserver_cgi.pl
trunk/examples/SmokeServer/script/smokeserver_create.pl
trunk/examples/SmokeServer/script/smokeserver_fastcgi.pl
trunk/examples/SmokeServer/script/smokeserver_server.pl
trunk/examples/SmokeServer/script/smokeserver_test.pl
Log:
update SmokeServer scripts
Modified: trunk/examples/SmokeServer/script/smokeserver_cgi.pl
===================================================================
--- trunk/examples/SmokeServer/script/smokeserver_cgi.pl 2009-05-30 00:11:51 UTC (rev 10379)
+++ trunk/examples/SmokeServer/script/smokeserver_cgi.pl 2009-05-30 00:20:51 UTC (rev 10380)
@@ -1,8 +1,9 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
BEGIN { $ENV{CATALYST_ENGINE} ||= 'CGI' }
use strict;
+use warnings;
use FindBin;
use lib "$FindBin::Bin/../lib";
use SmokeServer;
@@ -21,17 +22,16 @@
=head1 DESCRIPTION
-Run a Catalyst application as cgi.
+Run a Catalyst application as a cgi script.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri at oook.de>
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-Copyright 2004 Sebastian Riedel. All rights reserved.
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
Modified: trunk/examples/SmokeServer/script/smokeserver_create.pl
===================================================================
--- trunk/examples/SmokeServer/script/smokeserver_create.pl 2009-05-30 00:11:51 UTC (rev 10379)
+++ trunk/examples/SmokeServer/script/smokeserver_create.pl 2009-05-30 00:20:51 UTC (rev 10380)
@@ -1,10 +1,23 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
use strict;
+use warnings;
use Getopt::Long;
use Pod::Usage;
-use Catalyst::Helper;
+eval "use Catalyst::Helper;";
+if ($@) {
+ die <<END;
+To use the Catalyst development tools including catalyst.pl and the
+generated script/myapp_create.pl you need Catalyst::Helper, which is
+part of the Catalyst-Devel distribution. Please install this via a
+vendor package or by running one of -
+
+ perl -MCPAN -e 'install Catalyst::Devel'
+ perl -MCPANPLUS -e 'install Catalyst::Devel'
+END
+}
+
my $force = 0;
my $mech = 0;
my $help = 0;
@@ -43,8 +56,10 @@
smokeserver_create.pl view MyView TT
smokeserver_create.pl view TT TT
smokeserver_create.pl model My::Model
- smokeserver_create.pl model SomeDB DBIC::SchemaLoader dbi:SQLite:/tmp/my.db
- smokeserver_create.pl model AnotherDB DBIC::SchemaLoader dbi:Pg:dbname=foo root 4321
+ smokeserver_create.pl model SomeDB DBIC::Schema MyApp::Schema create=dynamic\
+ dbi:SQLite:/tmp/my.db
+ smokeserver_create.pl model AnotherDB DBIC::Schema MyApp::Schema create=static\
+ dbi:Pg:dbname=foo root 4321
See also:
perldoc Catalyst::Manual
@@ -58,15 +73,13 @@
to be created already exist the file will be written with a '.new' suffix.
This behavior can be suppressed with the C<-force> option.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri at oook.de>
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-Copyright 2004 Sebastian Riedel. All rights reserved.
-
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
Modified: trunk/examples/SmokeServer/script/smokeserver_fastcgi.pl
===================================================================
--- trunk/examples/SmokeServer/script/smokeserver_fastcgi.pl 2009-05-30 00:11:51 UTC (rev 10379)
+++ trunk/examples/SmokeServer/script/smokeserver_fastcgi.pl 2009-05-30 00:20:51 UTC (rev 10380)
@@ -1,8 +1,9 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
use strict;
+use warnings;
use Getopt::Long;
use Pod::Usage;
use FindBin;
@@ -10,8 +11,8 @@
use SmokeServer;
my $help = 0;
-my ( $listen, $nproc, $pidfile, $manager, $detach );
-
+my ( $listen, $nproc, $pidfile, $manager, $detach, $keep_stderr );
+
GetOptions(
'help|?' => \$help,
'listen|l=s' => \$listen,
@@ -19,16 +20,18 @@
'pidfile|p=s' => \$pidfile,
'manager|M=s' => \$manager,
'daemon|d' => \$detach,
+ 'keeperr|e' => \$keep_stderr,
);
pod2usage(1) if $help;
-SmokeServer->run(
- $listen,
+SmokeServer->run(
+ $listen,
{ nproc => $nproc,
- pidfile => $pidfile,
+ pidfile => $pidfile,
manager => $manager,
detach => $detach,
+ keep_stderr => $keep_stderr,
}
);
@@ -41,7 +44,7 @@
=head1 SYNOPSIS
smokeserver_fastcgi.pl [options]
-
+
Options:
-? -help display this help and exits
-l -listen Socket path to listen on
@@ -57,20 +60,20 @@
-M -manager specify alternate process manager
(FCGI::ProcManager sub-class)
or empty string to disable
+ -e -keeperr send error messages to STDOUT, not
+ to the webserver
=head1 DESCRIPTION
Run a Catalyst application as fastcgi.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri at oook.de>
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-Copyright 2004 Sebastian Riedel. All rights reserved.
-
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
Modified: trunk/examples/SmokeServer/script/smokeserver_server.pl
===================================================================
--- trunk/examples/SmokeServer/script/smokeserver_server.pl 2009-05-30 00:11:51 UTC (rev 10379)
+++ trunk/examples/SmokeServer/script/smokeserver_server.pl 2009-05-30 00:20:51 UTC (rev 10380)
@@ -1,62 +1,112 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
-BEGIN {
+BEGIN {
$ENV{CATALYST_ENGINE} ||= 'HTTP';
- $ENV{CATALYST_SCRIPT_GEN} = 27;
-}
+ $ENV{CATALYST_SCRIPT_GEN} = 39;
+ require Catalyst::Engine::HTTP;
+}
use strict;
+use warnings;
use Getopt::Long;
use Pod::Usage;
use FindBin;
use lib "$FindBin::Bin/../lib";
-my $debug = 0;
-my $fork = 0;
-my $help = 0;
-my $host = undef;
-my $port = 3000;
-my $keepalive = 0;
-my $restart = 0;
-my $restart_delay = 1;
-my $restart_regex = '\.yml$|\.yaml$|\.pm$';
+my $debug = 0;
+my $fork = 0;
+my $help = 0;
+my $host = undef;
+my $port = $ENV{SMOKESERVER_PORT} || $ENV{CATALYST_PORT} || 3000;
+my $keepalive = 0;
+my $restart = $ENV{SMOKESERVER_RELOAD} || $ENV{CATALYST_RELOAD} || 0;
+my $background = 0;
+my $pidfile = undef;
+my $check_interval;
+my $file_regex;
+my $watch_directory;
+my $follow_symlinks;
+
my @argv = @ARGV;
GetOptions(
- 'debug|d' => \$debug,
- 'fork' => \$fork,
- 'help|?' => \$help,
- 'host=s' => \$host,
- 'port=s' => \$port,
- 'keepalive|k' => \$keepalive,
- 'restart|r' => \$restart,
- 'restartdelay|rd=s' => \$restart_delay,
- 'restartregex|rr=s' => \$restart_regex
+ 'debug|d' => \$debug,
+ 'fork|f' => \$fork,
+ 'help|?' => \$help,
+ 'host=s' => \$host,
+ '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;
-if ( $restart ) {
- $ENV{CATALYST_ENGINE} = 'HTTP::Restarter';
-}
if ( $debug ) {
$ENV{CATALYST_DEBUG} = 1;
}
-# This is require instead of use so that the above environment
-# variables can be set at runtime.
-require SmokeServer;
+# If we load this here, then in the case of a restarter, it does not
+# need to be reloaded for each restart.
+require Catalyst;
-SmokeServer->run( $port, $host, {
- argv => \@argv,
- 'fork' => $fork,
- keepalive => $keepalive,
- restart => $restart,
- restart_delay => $restart_delay,
- restart_regex => qr/$restart_regex/
-} );
+# 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.
+ require SmokeServer;
+
+ SmokeServer->run(
+ $port, $host,
+ {
+ 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{follow_symlinks} = 1
+ if $follow_symlinks;
+ $args{directories} = $watch_directory
+ if defined $watch_directory;
+ $args{sleep_interval} = $check_interval
+ if defined $check_interval;
+ $args{filter} = qr/$file_regex/
+ if defined $file_regex;
+
+ my $restarter = $subclass->new(
+ %args,
+ start_sub => $runner,
+ argv => \@argv,
+ );
+
+ $restarter->run_and_watch;
+}
+else {
+ $runner->();
+}
+
1;
=head1 NAME
@@ -75,12 +125,20 @@
-host host (defaults to all)
-p -port port (defaults to 3000)
-k -keepalive enable keep-alive connections
- -r -restart restart when files got modified
+ -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$|\.pm$')
+ (defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
+ -restartdirectory the directory to search for
+ modified files, can be set mulitple times
+ (defaults to '[SCRIPT_DIR]/..')
+ -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
@@ -90,15 +148,13 @@
Run a Catalyst Testserver for this application.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri at oook.de>
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-Copyright 2004 Sebastian Riedel. All rights reserved.
-
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
Modified: trunk/examples/SmokeServer/script/smokeserver_test.pl
===================================================================
--- trunk/examples/SmokeServer/script/smokeserver_test.pl 2009-05-30 00:11:51 UTC (rev 10379)
+++ trunk/examples/SmokeServer/script/smokeserver_test.pl 2009-05-30 00:20:51 UTC (rev 10380)
@@ -1,6 +1,7 @@
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
use strict;
+use warnings;
use Getopt::Long;
use Pod::Usage;
use FindBin;
@@ -40,15 +41,13 @@
Run a Catalyst action from the command line.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri at oook.de>
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-Copyright 2004 Sebastian Riedel. All rights reserved.
-
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
More information about the Catalyst-commits
mailing list