version 1.10, 2006/07/24 19:03:53 |
version 1.13, 2007/11/02 03:35:07 |
|
|
#!/usr/bin/perl -T |
#!/usr/bin/perl -T |
#$RedRiver: NewTorrents.pl,v 1.9 2006/05/15 18:47:04 andrew Exp $ |
#$RedRiver: NewTorrents.pl,v 1.12 2007/10/01 20:17:23 andrew Exp $ |
use strict; |
use strict; |
use warnings; |
use warnings; |
use diagnostics; |
use diagnostics; |
|
|
|
|
%ENV = (); |
%ENV = (); |
|
|
use YAML; |
|
|
|
|
|
my $last_dir = ''; |
my $last_dir = ''; |
while (<>) { |
while (<>) { |
|
#print; |
chomp; |
chomp; |
print $_, "\n"; |
|
if (my ($message, $file) = m#(.*)\s+\`([^']+)'#) { |
if (my ($message, $file) = m#(.*)\s+\`([^']+)'#) { |
|
next if $message eq 'Mirroring directory'; |
next if $message eq 'Making directory'; |
next if $message eq 'Making directory'; |
|
|
my $dir = ''; |
my $dir = ''; |
if ($file =~ m#^(.*)/([^/]+)#) { |
if ($file =~ m#^(.*)/([^/]+)#) { |
($dir, $file) = ($1, $2); |
($dir, $file) = ($1, $2); |
} |
} |
#print "$message - $dir - $file\n"; |
#print "$message - ($last_dir) $dir - $file\n"; |
|
print "$message - $dir - $file\n"; |
if ($last_dir && $last_dir ne $dir) { |
if ($last_dir && $last_dir ne $dir) { |
StartTorrent($last_dir); |
StartTorrent($last_dir); |
} |
} |
|
|
sleep(1) while (keys %Kids > 0); |
sleep(1) while (keys %Kids > 0); |
StartTorrent('skip'); |
StartTorrent('skip'); |
|
|
|
# and wait for it to finish |
|
sleep(1) while (keys %Kids > 0); |
|
|
sub REAPER { |
sub REAPER { |
my $child; |
my $child; |
while (($child = waitpid(-1,WNOHANG)) > 0) { |
while (($child = waitpid(-1,WNOHANG)) > 0) { |
|
|
{ |
{ |
my $dir = shift; |
my $dir = shift; |
return undef unless $dir; |
return undef unless $dir; |
|
$dir =~ s/^.*$OBT->{BASENAME}\///; |
|
|
|
print "Starting '$dir'\n"; |
my $should_fork = 1; |
my $should_fork = 1; |
|
|
if ($dir eq 'skip') { |
if ($dir eq 'skip') { |