Skip to content
Snippets Groups Projects
Commit ae1fff78 authored by Glenn Proctor's avatar Glenn Proctor
Browse files

Added listing of valid species and sources if an invalid one is specified.

Some refactoring in preparation for upcoming package restructuring.
parent 4796f3df
No related branches found
No related tags found
No related merge requests found
......@@ -19,51 +19,18 @@ my %dependent_sources;
my %taxonomy2species_id;
my %name2species_id;
my $host;
my $port;
my $dbname;
my $user;
my $pass;
my @species;
my @sources;
if (!defined(caller())) {
get_options();
run();
}
# --------------------------------------------------------------------------------
sub get_options {
GetOptions('user=s' => \$user,
'pass=s' => \$pass,
'host=s' => \$host,
'port=i' => \$port,
'dbname=s' => \$dbname,
'species=s' => \@species,
'source=s' => \@sources,
'help' => sub { usage(); exit(0); });
@species = split(/,/,join(',',@species));
@sources = split(/,/,join(',',@sources));
if (!$user || !$host || !$dbname) {
usage();
exit(1);
}
}
my ($host, $port, $dbname, $user, $pass);
# --------------------------------------------------------------------------------
# Get info about files to be parsed from the database
sub run {
($host, $port, $dbname, $user, $pass, my $speciesr, my $sourcesr) = @_;
my @species = @$speciesr;
my @sources = @$sourcesr;
my $dbi = dbi();
# validate species names
......@@ -95,7 +62,7 @@ sub run {
}
my $sql =
"SELECT s.source_id, su.source_url_id, s.name, su.url, su.checksum, su.parser su.species_id" .
"SELECT s.source_id, su.source_url_id, s.name, su.url, su.checksum, su.parser, su.species_id " .
"FROM source s, source_url su " .
"WHERE s.download='Y' AND su.source_id=s.source_id " .
$source_sql . $species_sql .
......@@ -611,18 +578,6 @@ sub delete_by_source {
# --------------------------------------------------------------------------------
sub usage {
print << "EOF";
BaseParser.pm -user {user} -pass {password} -host {host} -port {port} -dbname {database} -species {species1,species2} -source {source1,source2}
EOF
}
# --------------------------------------------------------------------------------
sub validate_sources {
my @sources = @_;
......@@ -636,7 +591,8 @@ sub validate_sources {
if ($sth->fetchrow_array()) {
print "Source $source is valid\n";
} else {
print "Source $source is not valid, exiting\n";
print "\nSource $source is not valid; valid sources are:\n";
show_valid_sources();
return 0;
}
......@@ -648,6 +604,20 @@ sub validate_sources {
# --------------------------------------------------------------------------------
sub show_valid_sources() {
my $dbi = dbi();
my $sth = $dbi->prepare("SELECT name FROM source WHERE download='Y'");
$sth->execute();
while (my @row = $sth->fetchrow_array()) {
print @row[0] . "\n";
}
}
# --------------------------------------------------------------------------------
sub validate_species {
my @species = @_;
......@@ -666,7 +636,8 @@ sub validate_species {
print "Species $sp is valid (name = " . $species_name . ", ID = " . $species_id . ")\n";
push @species_ids, $species_id;
} else {
print "Species $sp is not valid, exiting\n";
print "Species $sp is not valid; valid species are:\n";
show_valid_species();
exit(1);
}
......@@ -678,5 +649,19 @@ sub validate_species {
# --------------------------------------------------------------------------------
sub show_valid_species() {
my $dbi = dbi();
my $sth = $dbi->prepare("SELECT name, aliases FROM species");
$sth->execute();
while (my @row = $sth->fetchrow_array()) {
print @row[0] . " (aliases: " . $row[1] . ")\n";
}
}
# --------------------------------------------------------------------------------
1;
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment