-[% startperl %]
+package [% appprefix %]::Script::Server;
-BEGIN {
- $ENV{CATALYST_ENGINE} ||= 'HTTP';
- $ENV{CATALYST_SCRIPT_GEN} = [% scriptgen %];
- require Catalyst::Engine::HTTP;
+use Catalyst::Engine::HTTP;
+use [% appprefix %];
+use Moose;
+
+with 'MooseX::GetOpt';
+
+has argv => ( isa => 'ArrayRef', is => 'ro', required => 1 );
+has [qw/ fork background keepalive /] => ( isa => 'Bool', is => 'ro', required => 1, default => 0 );
+has pidfile => ( isa => 'Str', required => 0, is => 'ro' );
+
+sub run {
+ my $self = shift;
+ [% appprefix %]->run(
+ $port, $host,
+ {
+ argv => $self->argv,
+ 'fork' => $self->fork,
+ keepalive => $self->keepalive,
+ background => $self->background,
+ pidfile => $self->pidfile,
+ }
+ );
}
-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 = $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;
-my $watch_directory;
-my $follow_symlinks;
-
-my @argv = @ARGV;
-
-GetOptions(
- '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,
-);
+__PACKAGE__->new_with_options->run;
+
pod2usage(1) if $help;
use strict;
use warnings;
-use File::Temp qw/ tempdir /;
+use File::Temp qw/ tempdir tmpnam /;
use File::Spec;
+use Test::WWW::Mechanize;
+
my $dir = tempdir(); # CLEANUP => 1 );
use Test::More;
script/testapp_create.pl
|;
-plan 'tests' => scalar @files + 3;
+plan 'tests' => scalar @files + 4;
foreach my $fn (@files) {
ok -r $fn, "Have $fn in generated app";
ok $newapp_test_status, "Tests ran okay";
#is $newapp_test_status, ;
-## Moosey server tests
+## Moosey server tests - kmx++
my $server_path = File::Spec->catfile('script', 'testapp_server.pl');
-#my $server_status = `$^X $server_path`;
-#ok $server_status, "Moosey server starts ok";
+my $childpid = fork();
+
+my $port = 3333; # or call some random generator
+
+if ($childpid == 0) {
+ my $tmpfile = tmpnam(); # do not redirect to /dev/null as it will not work on Win32
+ system("$^X $server_path -p $port > $tmpfile 2>&1");
+ unlink $tmpfile;
+ exit;
+}
+
+sleep 10; #wait for catalyst application to start
+my $mech = Test::WWW::Mechanize->new;
+$mech->get_ok( "http://localhost:" . $port );
+
+kill 'KILL', $childpid;
+