[Bio] / Sprout / LoadScript.pl Repository:
ViewVC logotype

View of /Sprout/LoadScript.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (download) (as text) (annotate)
Tue Feb 5 21:55:27 2008 UTC (11 years, 10 months ago) by parrello
Branch: MAIN
CVS Tags: mgrast_dev_08112011, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, rast_rel_2008_06_16, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, rast_rel_2009_05_18, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.3: +0 -2 lines
Removed obsolete use clauses.

#!/usr/bin/perl -w

=head1 General-Purpose Load Script

C<LoadScript> [I<options>] I<command> [ I<trace1> I<trace2> ... I<traceN> ]

This method executes a list of commands. If a command fails, it writes
the unprocessed commands into a file so they can be resumed.

The command takes multiple positional parameters.  The first
parameter must be one of the following.

=over 4

=item test

Executes a series of simple test commands to verify the operation
of this script.

=item seed

Loads the SEED database.

=back

The remaining positional parameters are added to the list of trace modules. So,
for example, the following command

    LoadScript seed FIG Stats

would run the SEED load with tracing on for the B<FIG> and B<Stats> modules.

In addition to the positional parameters, the following command-line options are
supported.

=over 4

=item trace

Numeric trace level. A higher trace level causes more messages to appear. The
default trace level is C<2>.

=item skip

Number of commands to skip. This allows the user to resume an interrupted load.
The default is C<0>, indicating that the whole list will be executed.

=item list

TRUE if the commands should simply be listed, else FALSE. The default is FALSE (C<0>).

=back

=cut

use strict;
use Tracer;
use FIG;
use Sprout;
use Cwd;
use File::Copy;
use File::Path;

# Get the command-line options.
my ($options, @parameters) = Tracer::ParseCommand({ trace => 2, skip => 0, list => 0 }, @ARGV);
# Get the command and convert it to lower case.
my $command = lc shift @parameters;
# Set up tracing.
my $traceLevel = $options->{trace};
my $traceString = join(" ", $traceLevel, "errors", "Tracer", "COMMANDS", @parameters);
TSetup("$traceString", "+>$FIG_Config::temp/trace.log");
# Insure the other FIG applications use the same trace setting.
$ENV{Trace} = $traceString;
$ENV{TraceType} = "+>>$FIG_Config::temp/trace.log";
# Create the command list.
my @commandList;
if ($command eq 'seed') {
    # Get the list of commands for doing a full load.
    @commandList = FIG::load_all_list();
    # Add the command to initialize the database.
    unshift @commandList, "init_FIG";
} elsif ($command eq 'test') {
    for (my $i = 1; $i < 10; $i++) {
        push @commandList, "TestScript line$i";
    }
} else {
    Confess("Invalid command $command.");
}
# Set up the trace.
my $action = ($options->{list} ? "Showing" : "Running");
# Execute the commands.
my $n = @commandList;
for (my $i = $options->{skip}; $i < $n; $i++) {
    my $command = $commandList[$i];
    my $counter = $i + 1;
    Trace(">> $action ($counter) of $n: $command.") if T(COMMANDS => 0);
    if (! $options->{list}) {
        system($command);
    }
}
Trace("Load complete") if T(0);

1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3