Diff for /foxridge-archiver/changemeta.pl between versions 1.3 and 1.4

version 1.3, 2006/06/29 07:42:46 version 1.4, 2006/12/11 18:09:00
Line 3 Line 3
 use strict;  use strict;
 use XML::LibXML;  use XML::LibXML;
   
 use lib '/usr/local/mpiwg/archive_devel';  use lib '/usr/local/mpiwg/archive';
 use MPIWGStor;  use MPIWGStor;
   
 # make output unbuffered  # make output unbuffered
 $|=1;  $|=1;
   
 # program version  # program version
 my $version = "0.2 (27.6.2006 ROC)";  my $version = "0.3 (11.12.2006 ROC)";
 my $help =   my $help = 
 "use: changemeta [options] dir  "use: changemeta [options] dir
 options:  options:
   -debug  show debugging info    -debug  show debugging info
   -dry-run  simulate, dont'do anything    -dry-run  simulate, dont'do anything
   -access=free  set free access tag (use access=mpiwg for restricted access)    -access=free  set free access tag (use access=mpiwg for restricted access)
     -derived-from=/mpiwg/archive/data/DBDDHKP
     -production-comment=\"scanned with flatbed scanner\"
 ";  ";
 logger("INFO", "changemeta $version");  logger("INFO", "changemeta $version");
   
Line 43  logger('DEBUG', "dry-run: $dry_run"); Line 45  logger('DEBUG', "dry-run: $dry_run");
 my $access_type = (exists $$args{'access'}) ? $$args{'access'} : "";  my $access_type = (exists $$args{'access'}) ? $$args{'access'} : "";
 logger('DEBUG', "access: $access_type");  logger('DEBUG', "access: $access_type");
   
   # derived-from
   my $derived_from = (exists $$args{'derived-from'}) ? $$args{'derived-from'} : "";
   logger('DEBUG', "derived-from: $derived_from");
   
   # production-comment
   my $production_comment = (exists $$args{'production-comment'}) ? $$args{'production-comment'} : "";
   logger('DEBUG', "production-comment: $production_comment");
   
 # index.meta namespace (not really implemented!)  # index.meta namespace (not really implemented!)
 my $namespace = "";  my $namespace = "";
   
Line 99  sub change_access { Line 109  sub change_access {
     $xml_changed++      $xml_changed++
 }  }
   
   #
   # sets derived-from tag to given value
   # removes tag if derived_from is empty
   #
   sub change_derived {
       my ($derived_from, $index_root) = @_;
   
       my $derived_tag = $index_root->findnodes('derived-from')->get_node(1);
       # remove derived tag if it exists
       if ($derived_tag) {
           $index_root->removeChild($derived_tag);
       }
   
       # add new derived tag (if $derived_Type is not empty)
       if (length $derived_from > 0) {
       create_text_path('derived-from/archive-path', $derived_from, $index_root, $namespace);
       }
       $xml_changed++
   }
   
   #
   # sets production-comment tag to given value
   # removes production tag if production_comment is empty
   #
   sub change_production {
       my ($production_comment, $index_root) = @_;
   
       my $parent_tag = $index_root->findnodes('//meta/image-acquisition')->get_node(1);
       if ($parent_tag) {
       my $production_tag = $parent_tag->findnodes('production-comment')->get_node(1);
       # remove production tag if it exists
       if ($production_tag) {
           $parent_tag->removeChild($production_tag);
       }
       } else {
       $parent_tag = create_element_path('meta/image-acquisition', $index_root, $namespace);
       }
   
       # add new production tag (if $production_comment is not empty)
       if (length $production_comment > 0) {
       create_text_path('production-comment', $production_comment, $parent_tag, $namespace);
       }
       $xml_changed++
   }
   
   
   
   
Line 123  if (-f "$docdir/index.meta") { Line 178  if (-f "$docdir/index.meta") {
 if ($access_type) {  if ($access_type) {
     change_access($access_type, $index_root);      change_access($access_type, $index_root);
 }  }
   if ($derived_from) {
       change_derived($derived_from, $index_root);
   }
   if ($production_comment) {
       change_production($production_comment, $index_root);
   }
   
   
 logger("INFO", "$warncnt warnings");  logger("INFO", "$warncnt warnings");

Removed from v.1.3  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>