[Bio] / FigKernelScripts / aclh_reload_contrib.pl Repository:
ViewVC logotype

View of /FigKernelScripts/aclh_reload_contrib.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (download) (as text) (annotate)
Fri Feb 13 20:20:00 2009 UTC (10 years, 9 months ago) by wilke
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, myrast_rel40, mgrast_dev_05262011, mgrast_dev_04082011, rast_rel_2010_0928, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, rast_rel_2011_0119, 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, mgrast_dev_04012011, rast_rel_2009_07_09, rast_rel_2010_0827, myrast_33, rast_rel_2011_0928, mgrast_dev_04052011, mgrast_dev_02222011, rast_rel_2009_03_26, mgrast_dev_10262011, HEAD
Changes since 1.1: +4 -2 lines
added db handle in ach call

#!/usr/bin/env perl

use strict;
use warnings;

use AnnoClearinghouse;
use FIG;
use DirHandle;


# usage message 
sub usage {
  my $error = shift;
  print "Usage: $0 clearinghouse-dir contrib-dir [new-contrib-dir]\n";
  print "Reload contrib-dir to new-contrib-dir (default is contrib_dir.<time>)\n";
  print "Error: $error\n" if($error);
  exit;
}

# check parameters
@ARGV == 2 or &usage();

my $aclh_dir = shift;
my $contrib_dir = shift;
my $contrib_new = shift || $contrib_dir.".".time;

print "Reloading aclh contributed annotations:\n";

&usage("New contrib directory does already exist.") if (-d $contrib_new);
mkdir($contrib_new, 0777) || die "Unable to create directory $contrib_new: $!";


# stage 1: collect all user files from the old contrib dir
print "Reading $contrib_dir.\n";
my $files = [];
my $dh = DirHandle->new($contrib_dir);
while (defined($_ = $dh->read())) {

  next unless (-d "$contrib_dir/$_" and /^[^\.]+$/);

  my $user = $_;
  my $path = "$contrib_dir/$_";

  my $idh  = DirHandle->new($path);
  while (defined($_ = $idh->read())) {
    
    next unless (/^anno\.\d+$/ or /^anno\.orig\.\d+/);
    push @$files, [ $user, "$path/$_" ];

  }

}
 
# stage 2: feed them into the aclh with the new contrib dir 
print "Writing $contrib_new.\n";

my $fig = new FIG;

my $anno = AnnoClearinghouse->new($aclh_dir, $contrib_new , 0 , $fig->db_handle);
my $total = 0;
my $failed = 0;
foreach my $f (@$files) {

  my ($user, $upload) = @$f;
  my $bad = [];
  my $count = 0;
  eval {
    $count = $anno->import_user_annotations($user, $upload, $bad);
  };
  if ($@) {
    print "> $user, $upload: failed completely.\n";
    $failed++;
    next;
  }
  $total += $count;

  print "> $user, $upload: $count annotations imported. ";
  print scalar(@$bad)." failed.";
  print "\n";

}

print "Imported $total annotations.\n";
print "Failed on $failed uploads.\n";

exit 1;





MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3