version 1.6, 2005/08/31 10:50:00
|
version 1.9, 2006/05/16 19:56:32
|
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.2 (31.8.2005 ROC)"; |
my $version = "0.2.4 (16.5.2006 ROC)"; |
my $help = |
my $help = |
"use: makemeta-lib [options] file.xml |
"use: makemeta-lib [options] file.xml |
options: |
options: |
Line 20 options:
|
Line 20 options:
|
-cw-mode mode for copying einstein_cw archive documents |
-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) |
|
-access=free adds free access tag (use access=mpiwg for restricted access) |
"; |
"; |
logger("INFO", "makemeta-lib $version"); |
logger("INFO", "makemeta-lib $version"); |
|
|
Line 153 logger('DEBUG', "map_file_name: $map_fil
|
Line 154 logger('DEBUG', "map_file_name: $map_fil
|
my $mapping_doc; |
my $mapping_doc; |
my $mapping_root; |
my $mapping_root; |
|
|
|
# access type |
|
my $access_type = (exists $$args{'access'}) ? $$args{'access'} : ""; |
|
|
# index.meta namespace (not really implemented!) |
# index.meta namespace (not really implemented!) |
my $namespace = ""; |
my $namespace = ""; |
|
|
Line 276 sub find_permanent_dir {
|
Line 280 sub find_permanent_dir {
|
my $online_base = '/mpiwg/online/permanent'; |
my $online_base = '/mpiwg/online/permanent'; |
my $src_dir = find_online_dir($input_node, $online_base, 'pageimg'); |
my $src_dir = find_online_dir($input_node, $online_base, 'pageimg'); |
my $dest_id = sstrip($input_node->findvalue("fm:$online_id_field")); |
my $dest_id = sstrip($input_node->findvalue("fm:$online_id_field")); |
if (! $dest_id) { |
if ((! $dest_id)||(! $src_dir)) { |
logger('ERROR', "no ID field for online permanent entry"); |
logger('ERROR', "no ID field for online permanent entry"); |
$errcnt++; |
$errcnt++; |
return; |
return; |
Line 417 sub process_fm_entry {
|
Line 421 sub process_fm_entry {
|
$index_root->addChild($index_doc->createAttributeNS($namespace, 'version', '1.1')); |
$index_root->addChild($index_doc->createAttributeNS($namespace, 'version', '1.1')); |
$index_root->addChild($index_doc->createAttributeNS($namespace, 'type', 'MPIWG')); |
$index_root->addChild($index_doc->createAttributeNS($namespace, 'type', 'MPIWG')); |
$index_doc->setDocumentElement($index_root); |
$index_doc->setDocumentElement($index_root); |
|
my $derived_from = ""; |
|
|
# try to find the document directory |
# try to find the document directory |
my $doc_dir = ""; |
my $doc_dir = ""; |
if ($online_mode) { |
if ($online_mode) { |
$doc_dir = find_permanent_dir($input_node); |
$doc_dir = find_permanent_dir($input_node); |
|
$derived_from = find_arch_dir($input_node); |
} elsif ($cw_mode) { |
} elsif ($cw_mode) { |
$doc_dir = find_cw_dir($input_node); |
$doc_dir = find_cw_dir($input_node); |
} elsif ($digifiles_mode) { |
} elsif ($digifiles_mode) { |
Line 450 sub process_fm_entry {
|
Line 456 sub process_fm_entry {
|
# media |
# media |
create_text_path('media-type', 'image', $index_root, $namespace); |
create_text_path('media-type', 'image', $index_root, $namespace); |
create_text_path('meta/content-type', 'scanned document', $index_root, $namespace); |
create_text_path('meta/content-type', 'scanned document', $index_root, $namespace); |
|
# derived-from |
|
if ($derived_from) { |
|
create_text_path('derived-from/archive-path', $derived_from, $index_root, $namespace); |
|
} |
|
# access |
|
if ($access_type) { |
|
if ($access_type eq "free") { |
|
create_element_path('access-conditions/access@type=free', $index_root, $namespace); |
|
} else { |
|
my $acc_tag = create_element_path('access-conditions/access@type=institution', $index_root, $namespace); |
|
create_text_path('name', $access_type, $acc_tag, $namespace); |
|
} |
|
} |
|
|
# convert bib entries |
# convert bib entries |
my $cnt = convert_bib($input_node, $index_root, $index_doc); |
my $cnt = convert_bib($input_node, $index_root, $index_doc); |