#!/usr/bin/perl -w
#
# $Id: GetDump.pl,v 1.1 2008/02/21 00:14:33 kawas Exp $
# $Source: /home/repository/moby/moby-live/Perl/MOBY-Client/scripts/GetDump.pl,v $
#
use strict;
use Getopt::Std;
use SOAP::Lite;
#use SOAP::Lite + 'trace';
use MOBY::Client::Central;
# Get options.
my %opts;
getopt('c', \%opts);
my $central;
my $central_uri;
my $central_url;
if ( $opts{'c'} ) {
($central_uri, $central_url) = split '@', $opts{'c'};
print "Using MOBY Central:\n\t$central_uri @ $central_url\n";
# Set this to wherever your MOBY Central is.
$central = MOBY::Client::Central->new(
Registries => {
mobycentral => {
URL => $central_url,
URI => $central_uri
}
}
);
} else {
print "Using default BioMOBY Central.\n\n";
print "If you want to get a dump from a different BioMOBY Central use:\n";
print "GetDump.pl -c [Central] Specify which BioMOBY Central to use.\n";
print " [Central] = [CentralURI]@[CentralURL].\n\n";
$central = MOBY::Client::Central->new();
}
#
# Create the SQL dump dir.
#
my $dumpdir = './sqldump/';
print "Creating sql dump directory $dumpdir...\n";
mkdir $dumpdir,0755 or die "\tcouldn't create output directory $dumpdir: $!\n";
#
# Get data dump
#
print "MOBY Central data dump:\n";
# A simple MOBY_Central call to get a complete dump of registered stuff.
my ($mobycentral, $mobyobject, $mobyservice, $mobynamespace, $mobyrelationship) = $central->MOBY::Client::Central::DUMP();
DumpSQL('mobycentral', $mobycentral);
DumpSQL('mobyobject', $mobyobject);
DumpSQL('mobyservice', $mobyservice);
DumpSQL('mobynamespace', $mobynamespace);
DumpSQL('mobyrelationship', $mobyrelationship);
sub DumpSQL {
my ($db, $data) = @_;
print "Dumping $db...";
my $pathto = $dumpdir .+ $db .+ '.sql';
open (SQLSAVE,">>$pathto") or die " can't open output file $pathto: $!";
print SQLSAVE $data or die " can't save output to file $pathto: $!";
print " done.\n";
close SQLSAVE;
}
print "Finished!\n";