262 |
Loads B<ReactionURL>, B<Compound>, B<CompoundName>, |
Loads B<ReactionURL>, B<Compound>, B<CompoundName>, |
263 |
B<CompoundCAS>, B<IsAComponentOf>, B<Reaction>. |
B<CompoundCAS>, B<IsAComponentOf>, B<Reaction>. |
264 |
|
|
265 |
|
=item Synonym |
266 |
|
|
267 |
|
Loads B<SynonymGroup> and B<IsSynonymGroupFor>. |
268 |
|
|
269 |
|
=item Family |
270 |
|
|
271 |
|
Loads B<Family> and B<ContainsFeature>. |
272 |
|
|
273 |
=item * |
=item * |
274 |
|
|
275 |
Loads all of the above tables. |
Loads all of the above tables. |
298 |
|
|
299 |
=item user |
=item user |
300 |
|
|
301 |
Suffix to use for trace, output, and error files created in |
Suffix to use for trace, output, and error files created. |
302 |
|
|
303 |
=item dbLoad |
=item dbLoad |
304 |
|
|
332 |
|
|
333 |
Trace SQL statements. |
Trace SQL statements. |
334 |
|
|
335 |
|
=item phone |
336 |
|
|
337 |
|
Phone number to message when the load finishes. |
338 |
|
|
339 |
=back |
=back |
340 |
|
|
341 |
=cut |
=cut |
362 |
loadOnly => [0, "load the database from previously generated files"], |
loadOnly => [0, "load the database from previously generated files"], |
363 |
primaryOnly => [0, "only process the group's main entity"], |
primaryOnly => [0, "only process the group's main entity"], |
364 |
resume => [0, "resume a complete load starting with the first group specified in the parameter list"], |
resume => [0, "resume a complete load starting with the first group specified in the parameter list"], |
365 |
|
phone => ["", "phone number (international format) to call when load finishes"], |
366 |
}, |
}, |
367 |
"<group1> <group2> ...", |
"<group1> <group2> ...", |
368 |
@ARGV); |
@ARGV); |
387 |
if ($resume && @parameters > 1) { |
if ($resume && @parameters > 1) { |
388 |
Confess("If resume=1, only one load group can be specified."); |
Confess("If resume=1, only one load group can be specified."); |
389 |
} elsif (! @parameters) { |
} elsif (! @parameters) { |
390 |
Confess("No load groups were specified."); |
Trace("No load groups were specified.") if T(0); |
391 |
} |
} |
392 |
|
# Set a variable to contain return type information. |
393 |
|
my $rtype; |
394 |
|
# Insure we catch errors. |
395 |
|
eval { |
396 |
# Process the parameters. |
# Process the parameters. |
397 |
for my $group (@parameters) { |
for my $group (@parameters) { |
398 |
Trace("Processing load group $group.") if T(2); |
Trace("Processing load group $group.") if T(2); |
441 |
$spl->LoadReactionData(); |
$spl->LoadReactionData(); |
442 |
$group = ResumeCheck($resume, $group); |
$group = ResumeCheck($resume, $group); |
443 |
} |
} |
444 |
|
if ($group eq 'Synonym' || $group eq '*') { |
445 |
|
$spl->LoadSynonymData(); |
446 |
|
$group = ResumeCheck($resume, $group); |
447 |
|
} |
448 |
|
if ($group eq 'Family' || $group eq '*') { |
449 |
|
$spl->LoadFamilyData(); |
450 |
|
$group = ResumeCheck($resume, $group); |
451 |
|
} |
452 |
} |
} |
453 |
|
}; |
454 |
|
if ($@) { |
455 |
|
Trace("Load failed with error: $@") if T(0); |
456 |
|
$rtype = "error"; |
457 |
|
} else { |
458 |
Trace("Load complete.") if T(2); |
Trace("Load complete.") if T(2); |
459 |
|
$rtype = "no error"; |
460 |
|
} |
461 |
|
if ($options->{phone}) { |
462 |
|
my $msgID = Tracer::SendSMS($options->{phone}, "Sprout load terminated with $rtype."); |
463 |
|
if ($msgID) { |
464 |
|
Trace("Phone message sent with ID $msgID.") if T(2); |
465 |
|
} else { |
466 |
|
Trace("Phone message not sent.") if T(2); |
467 |
|
} |
468 |
|
} |
469 |
|
|
470 |
# If the resume flag is set, return "*", else return "". |
# If the resume flag is set, return "*", else return "". |
471 |
sub ResumeCheck { |
sub ResumeCheck { |