The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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;