version 1.5, 2005/08/23 15:01:08
|
version 1.6, 2005/08/31 10:50:00
|
Line 10 use MPIWGStor;
|
Line 10 use MPIWGStor;
|
$|=1; |
$|=1; |
|
|
# program version |
# program version |
my $version = "0.2.1 (15.8.2005)"; |
my $version = "0.2.2 (31.8.2005 ROC)"; |
my $help = |
my $help = |
"use: makemeta-lib [options] file.xml |
"use: makemeta-lib [options] file.xml |
options: |
options: |
-debug show debugging info |
-debug show debugging info |
-dry-run simulate, dont'do anything |
-dry-run simulate, dont'do anything |
-cw-mode mode for copying einstein_cq documents |
-online-mode mode for creating online/permanent files |
|
-cw-mode mode for copying einstein_cw archive documents |
-digifiles-mode mode for copying files from digifiles |
-digifiles-mode mode for copying files from digifiles |
-map-file=mapfile.xml digilib mapping file (for digifiles mode) |
-map-file=mapfile.xml digilib mapping file (for digifiles mode) |
"; |
"; |
Line 135 $debug = (exists $$args{'debug'}) ? $$ar
|
Line 136 $debug = (exists $$args{'debug'}) ? $$ar
|
my $dry_run = (exists $$args{'dry-run'}) ? $$args{'dry-run'} : 0; |
my $dry_run = (exists $$args{'dry-run'}) ? $$args{'dry-run'} : 0; |
logger('DEBUG', "dry-run: $dry_run"); |
logger('DEBUG', "dry-run: $dry_run"); |
|
|
|
# use online mode |
|
my $online_mode = (exists $$args{'online-mode'}) ? $$args{'online-mode'} : 0; |
|
logger('DEBUG', "online_mode: $online_mode"); |
|
|
# use einstein-cw mode |
# use einstein-cw mode |
my $cw_mode = (exists $$args{'cw-mode'}) ? $$args{'cw-mode'} : 0; |
my $cw_mode = (exists $$args{'cw-mode'}) ? $$args{'cw-mode'} : 0; |
logger('DEBUG', "cw_mode: $cw_mode"); |
logger('DEBUG', "cw_mode: $cw_mode"); |
Line 266 sub find_cw_dir {
|
Line 271 sub find_cw_dir {
|
return; |
return; |
} |
} |
|
|
|
sub find_permanent_dir { |
|
my ($input_node) = @_; |
|
my $online_base = '/mpiwg/online/permanent'; |
|
my $src_dir = find_online_dir($input_node, $online_base, 'pageimg'); |
|
my $dest_id = sstrip($input_node->findvalue("fm:$online_id_field")); |
|
if (! $dest_id) { |
|
logger('ERROR', "no ID field for online permanent entry"); |
|
$errcnt++; |
|
return; |
|
} |
|
my $dir = "$online_base/$src_dir"; |
|
return $dir; |
|
} |
|
|
# |
# |
# $dir = find_online_dir($input_node, $base_dir, $page_dir) |
# $dir = find_online_dir($input_node, $base_dir, $page_dir) |
# |
# |
Line 289 sub find_online_dir {
|
Line 308 sub find_online_dir {
|
} |
} |
#logger('DEBUG', "online_dir1: $online_dir"); |
#logger('DEBUG', "online_dir1: $online_dir"); |
if ($online_dir) { |
if ($online_dir) { |
|
$online_dir =~ s/\/$//; # strip ending slashes |
if ($page_dir) { |
if ($page_dir) { |
$online_dir =~ s/\/${page_dir}$//; |
$online_dir =~ s/\/${page_dir}$//; |
} |
} |
Line 400 sub process_fm_entry {
|
Line 420 sub process_fm_entry {
|
|
|
# try to find the document directory |
# try to find the document directory |
my $doc_dir = ""; |
my $doc_dir = ""; |
if ($cw_mode) { |
if ($online_mode) { |
|
$doc_dir = find_permanent_dir($input_node); |
|
} elsif ($cw_mode) { |
$doc_dir = find_cw_dir($input_node); |
$doc_dir = find_cw_dir($input_node); |
} elsif ($digifiles_mode) { |
} elsif ($digifiles_mode) { |
$doc_dir = find_digifiles_dir($input_node); |
$doc_dir = find_digifiles_dir($input_node); |