-
Notifications
You must be signed in to change notification settings - Fork 212
Crude Win32 development restarter
Corion edited this page Jan 31, 2011
·
2 revisions
#!perl -w use strict; use Win32::ChangeNotify; use Getopt::Long;
GetOptions( 'dir|d:s' => \my @directories, );
my $child;
sub launch_child { warn "Launching [@]"; my $pid = system(1, @); warn "Server PID: $pid"; $pid; };
my $path = $directories[0];
while (1) { my $child = launch_child(@ARGV);
my $notify = Win32::ChangeNotify->new($path,1,'DIR_NAME FILE_NAME LAST_WRITE SIZE');
$notify->wait or warn "Something failed: $!\n";
# There has been a change.
warn "Killing $child";
kill 9 => $child;
undef $child;
};
END { kill $child if $child; }; END =head1 SYNOPSIS
server-restarter.pl -d lib -- perl -w \strawberry\perl\bin\plackup --server Twiggy bin\server.psg
=head1 USAGE
server-restarter.pl -d DIRECTORY -- command to launch
=cut