Improved test server
Sebastian Riedel [Mon, 17 Oct 2005 16:07:44 +0000 (16:07 +0000)]
lib/Catalyst.pm
lib/Catalyst/Engine/HTTP.pm
lib/Catalyst/Helper.pm

index 510411c..dc17610 100644 (file)
@@ -36,7 +36,7 @@ our $DETACH    = "catalyst_detach\n";
 require Module::Pluggable::Fast;
 
 # Helper script generation
-our $CATALYST_SCRIPT_GEN = 7;
+our $CATALYST_SCRIPT_GEN = 8;
 
 __PACKAGE__->mk_classdata($_)
   for qw/components arguments dispatcher engine log/;
index 77bb798..7adbcb0 100644 (file)
@@ -144,7 +144,7 @@ sub run {
                         next unless $file =~ /\.pm$/;
                         if ( my $error = _test($file) ) {
                             print STDERR
-                              qq/File "$file" modified, not restarting\n/;
+                              qq/File "$file" modified, not restarting\n\n/;
                             print STDERR '*' x 80, "\n";
                             print STDERR $error;
                             print STDERR '*' x 80, "\n";
@@ -154,7 +154,7 @@ sub run {
 
                     # Restart
                     my $files = join ', ', @$changes;
-                    print STDERR qq/File(s) "$files" modified, restarting\n/;
+                    print STDERR qq/File(s) "$files" modified, restarting\n\n/;
                     kill( 1, $parent );
                     exit;
                 }
@@ -267,7 +267,8 @@ sub run {
 
     if ($GOT_HUP) {
         $SIG{CHLD} = 'DEFAULT';
-        exec {$0}( ( ( -x $0 ) ? () : ($^X) ), $0, @ARGV );
+        wait;
+        exec {$0}( ( ( -x $0 ) ? () : ($^X) ), $0, @{ $options->{argv} } );
     }
 }
 
@@ -321,6 +322,7 @@ sub _index {
 
 sub _test {
     my $file = shift;
+    delete $INC{$file};
     local $SIG{__WARN__} = sub { };
     open my $olderr, '>&STDERR';
     open STDERR, '>', File::Spec->devnull;
index 0f2de20..df7f24d 100644 (file)
@@ -661,6 +661,8 @@ my $restart       = 0;
 my $restart_delay = 1;
 my $restart_regex = '\.yml$|\.yaml$|\.pm$';
 
+my @argv = @ARGV;
+
 GetOptions(
     'fork'              => \$fork,
     'help|?'            => \$help,
@@ -674,6 +676,7 @@ GetOptions(
 pod2usage(1) if $help;
 
 [% name %]->run( $port, $host, {
+    argv   => \@argv,
     'fork' => $fork,
     restart => $restart,
     restart_delay => $restart_delay,