use vars qw($savelogs);
$savelogs = '../blib/script/savelogs'; # '../script/savelogs';
sub settings {
my @settings = @_;
my %settings;
for ( @settings ) {
my($key,$value) = $_ =~ m/^\s*SET: (\S+)\s*=>\s+(.*)$/;
next unless $key;
$settings{$key} = $value;
}
return \%settings;
}
## make a log file for testing
sub make_log {
my $size = shift || 1;
my $file = shift || 'test_log';
my $is_random = shift;
open FILE, ">$file"
or die "Could not open $file: $!\n";
if( $is_random ) {
for( 1 .. $size ) {
print FILE chr(rand(255));
}
}
else {
print FILE 'x' x $size;
}
close FILE;
return $file;
}
sub copy_file {
my $src = shift;
my $dst = shift;
my $buf;
my $size = 1024;
unless( -f $src ) {
warn "Could not find '$src': $!\n";
return undef;
}
open SRC, $src
or do {
warn "Could not open '$src' for copy: $!\n";
return undef;
};
open DST, ">$dst"
or do {
warn "Could not open '$dst' for write: $!\n";
close SRC;
return undef;
};
## copy loop (stolen from File::Copy)
for (;;) {
my ($r, $w, $t);
defined($r = sysread(SRC, $buf, $size))
or do {
warn "Error in sysread: $!\n";
close SRC; close DST;
return undef;
};
last unless $r;
for ($w = 0; $w < $r; $w += $t) {
$t = syswrite(DST, $buf, $r - $w, $w)
or do {
warn "Error in syswrite: $!\n";
close SRC; close DST;
return undef;
};
}
}
close DST;
close SRC;
}
1;