my ($self, $ref_arg) = @_;
my $source_id = $ref_arg->{source_id};
my $species_id = $ref_arg->{species_id};
my $files = $ref_arg->{files};
my $verbose = $ref_arg->{verbose};
if((!defined $source_id) or (!defined $species_id) or (!defined $files) ){
croak "Need to pass source_id, species_id and files as pairs";
}
$verbose ||=0;
# FIXME: this will fail if the input file is in a read-only directory (ENSCORESW-3197)
my $target_file = $files->[0].'.mysqlinput';
my $input_fh = $self->get_filehandle($files->[0]);
if(-f $target_file) {
print "Target file '${target_file}' already exists; removing\n" if $verbose;
unlink $target_file;
}
my $output_fh = IO::File->new($target_file, 'w')
|| croak "Failed to open ${target_file} for writing: ${OS_ERROR}";
$self->_transfer_contents($input_fh, $output_fh, $source_id);
close($input_fh);
close($output_fh);
$self->_load_table($target_file, $verbose, $source_id);
return;
}