Bio-GMOD
view release on metacpan or search on metacpan
GMOD/Admin/Update/WormBase.pm view on Meta::CPAN
package Bio::GMOD::Admin::Update::WormBase;
use strict;
use vars qw/@ISA/;
use Bio::GMOD::Admin::Update;
#use Bio::GMOD::Admin::Monitor::httpd;
#use Bio::GMOD::Admin::Monitor::acedb;
#use Bio::GMOD::Admin::Monitor::mysqld;
#use Bio::GMOD::Admin::Monitor::blat;
use Bio::GMOD::Util::Rearrange;
use File::Path 'rmtree';
@ISA = qw/Bio::GMOD::Admin::Update/;
################################################
# WormBase-specific update methods
################################################
sub update {
my ($self,@p) = @_;
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
my $version = $adaptor->version;
my $rsync_module = $adaptor->rsync_module;
$self->analyze_logs(-version => $version,
-site => `hostname`);
$self->prepare_tmp_dir();
$self->fetch_acedb(-version => $version);
$self->fetch_elegans_gff(-version => $version);
$self->fetch_briggsae_gff(-version => $version);
$self->fetch_blast_blat(-version => $version);
$self->rsync_software(-module => $rsync_module,
-install_root => '/usr/local/wormbase/');
}
sub fetch_acedb {
my ($self,@p) = @_;
$self->logit(-msg => 'Fetching and installing Acedb',
-emphasis => 1);
my $adaptor = $self->adaptor;
$adaptor->parse_params(@p);
# Version to update to
my $version = $adaptor->version;
# Where to find the database tarballs.
my $databases = $adaptor->database_repository;
# The acedb tarball
my $acedb = sprintf($adaptor->acedb_tarball,$version);
# Local and remote paths
my $remote_path = "$databases/$version/$acedb";
my $local_path = $adaptor->tmp_path . "/$version";
# Make sure there is enough space first
my $disk_space = $adaptor->acedb_disk_space;
$self->check_disk_space(-path => $local_path,
-required => $disk_space,
-component => 'acedb');
$self->mirror(-remote_path => $remote_path,
-local_path => $local_path);
my $acedb_path = $adaptor->acedb_path;
unless ($adaptor->dl_only) {
$self->logit(-msg => "Unpacking and installing $acedb");
chdir($acedb_path);
system("gunzip -c $local_path/$acedb | tar -x --no-same-owner -f -");
unlink($acedb_path . '/elegans');
symlink("elegans_$version",'elegans');
# Adjust permissions
my $command = <<END;
chown -R acedb $acedb_path/elegans*
( run in 0.631 second using v1.01-cache-2.11-cpan-98e64b0badf )