annotate makemeta-vlp.pl @ 21:c8e4e8cb31dd

new tool for createing index files for vlp documents
author casties
date Tue, 20 Sep 2005 19:32:06 +0200
parents
children c3defe3e2780
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
1 #!/usr/local/bin/perl -w
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
2
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
3 use strict;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
4 use XML::LibXML;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
5
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
6 use lib '/usr/local/mpiwg/archive_devel';
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
7 use MPIWGStor;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
8
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
9 # make output unbuffered
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
10 $|=1;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
11
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
12 # program version
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
13 my $version = "0.2 (19.9.2005 ROC)";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
14 my $help =
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
15 "use: makemeta-vlp [options] file.xml
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
16 options:
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
17 -debug show debugging info
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
18 -dry-run simulate, dont'do anything
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
19 -replace replace existing index files
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
20 -online-mode mode for creating online/permanent files
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
21 -archive-mode mode for creating archive/data files
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
22 ";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
23 logger("INFO", "makemeta-vlp $version");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
24
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
25 ###########################################
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
26 # mappings
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
27
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
28 # generic mappings at top level
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
29 my %gen_map = (
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
30 'Custom2_Language' => 'meta/lang'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
31 );
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
32 # sub type switch tag
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
33 my %type_map = (
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
34 'ReferenceType' => 'meta/bib@type'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
35 );
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
36 # sub type mappings
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
37 my %subtype_map = (
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
38 'Book' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
39 '_name' => 'book',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
40 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
41 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
42 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
43 'Place_Published' => 'meta/bib/city',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
44 'Publisher' => 'meta/bib/publisher',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
45 'Edition' => 'meta/bib/edition',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
46 'Volume' => 'meta/bib/volume',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
47 'NumberOfVolumes' => 'meta/bib/number-of-volumes',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
48 'Pages' => 'meta/bib/number-of-pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
49 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
50 'Book Section' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
51 '_name' => 'inbook',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
52 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
53 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
54 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
55 'Secondary_Title' => 'meta/bib/book-title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
56 'SecondaryAuthor' => 'meta/bib/editor',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
57 'Volume' => 'meta/bib/volume',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
58 'NumberOfVolumes' => 'meta/bib/number-of-volumes',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
59 'Pages' => 'meta/bib/pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
60 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
61 'Edited Book' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
62 '_name' => 'edited-book',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
63 'Author' => 'meta/bib/editor',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
64 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
65 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
66 'Place_Published' => 'meta/bib/city',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
67 'Publisher' => 'meta/bib/publisher',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
68 'Edition' => 'meta/bib/edition',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
69 'Volume' => 'meta/bib/volume',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
70 'NumberOfVolumes' => 'meta/bib/number-of-volumes',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
71 'Pages' => 'meta/bib/number-of-pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
72 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
73 'Journal Article' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
74 '_name' => 'journal-article',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
75 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
76 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
77 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
78 'SecondaryTitle' => 'meta/bib/journal',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
79 'Volume' => 'meta/bib/volume',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
80 'Number_Issue' => 'meta/bib/issue',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
81 'Pages' => 'meta/bib/pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
82 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
83 'Magazine Article' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
84 '_name' => 'magazine-article',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
85 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
86 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
87 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
88 'Secondary_Title' => 'meta/bib/magazine',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
89 'Number_Issue' => 'meta/bib/issue-number',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
90 'Date' => 'meta/bib/issue-date',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
91 'Pages' => 'meta/bib/pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
92 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
93 'Report' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
94 '_name' => 'report',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
95 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
96 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
97 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
98 'Place_Published' => 'meta/bib/city',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
99 'Date' => 'meta/bib/date',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
100 'SecondaryTitle' => 'meta/bib/type',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
101 'Pages' => 'meta/bib/pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
102 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
103 'Trade Catalogue' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
104 '_name' => 'report',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
105 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
106 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
107 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
108 'Place_Published' => 'meta/bib/city',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
109 'Date' => 'meta/bib/date',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
110 'Volume' => 'meta/bib/volume',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
111 'NumberOfVolumes' => 'meta/bib/number-of-volumes',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
112 'ReferenceType' => 'meta/bib/type',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
113 'Pages' => 'meta/bib/pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
114 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
115 'Thesis' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
116 '_name' => 'thesis',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
117 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
118 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
119 'Place_Published' => 'meta/bib/city',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
120 'Publisher' => 'meta/bib/university',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
121 'Date' => 'meta/bib/date',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
122 'TypeOfWork' => 'meta/bib/type',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
123 'Pages' => 'meta/bib/number-of-pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
124 },
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
125 'Manuscript' => {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
126 '_name' => 'manuscript',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
127 'Author' => 'meta/bib/author',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
128 'Title' => 'meta/bib/title',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
129 'Year' => 'meta/bib/year',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
130 'Place_Published' => 'meta/bib/location',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
131 'Pages' => 'meta/bib/pages'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
132 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
133 );
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
134 # language element
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
135 my $lang_field = 'Custom2_Language';
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
136 # languages to iso codes
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
137 my %lang_map = (
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
138 'German' => 'de',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
139 'English' => 'en',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
140 'Italian' => 'it',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
141 'French' => 'fr',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
142 'Latin' => 'la',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
143 'Japanese' => 'ja',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
144 'Dutch' => 'nl',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
145 'Spanish' => 'es',
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
146 'Swedish' => 'sv'
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
147 );
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
148 # storage fields
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
149 my $arch_id_field = 'ID';
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
150
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
151 #######################################################
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
152 # internal parameters
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
153 #
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
154
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
155 # storage
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
156 my $lib_arch_dir = '/mpiwg/archive/data/vlp';
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
157 my $lib_online_dir = '/mpiwg/online/permanent/vlp';
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
158
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
159 # read command line parameters
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
160 my $args = MPIWGStor::parseargs;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
161 if (! scalar(%$args)) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
162 print $help, "\n";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
163 exit 1;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
164 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
165
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
166 # debug level
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
167 $debug = (exists $$args{'debug'}) ? $$args{'debug'} : 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
168
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
169 # simulate action only
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
170 my $dry_run = (exists $$args{'dry-run'}) ? $$args{'dry-run'} : 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
171 logger('DEBUG', "dry-run: $dry_run");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
172
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
173 # replace existing index files
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
174 my $do_replace = (exists $$args{'replace'}) ? $$args{'replace'} : 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
175 logger('DEBUG', "replace: $do_replace");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
176
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
177 # use online mode
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
178 my $online_mode = (exists $$args{'online-mode'}) ? $$args{'online-mode'} : 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
179 logger('DEBUG', "online_mode: $online_mode");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
180
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
181 # use archive mode
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
182 my $archive_mode = (exists $$args{'archive-mode'}) ? $$args{'archive-mode'} : 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
183 logger('DEBUG', "archive_mode: $archive_mode");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
184
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
185 # index.meta namespace (not really implemented!)
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
186 my $namespace = "";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
187
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
188
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
189 my $xml_changed = 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
190 my $errcnt = 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
191 my $warncnt = 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
192
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
193 #######################################################
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
194 # check parameters that were passed to the program
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
195 #
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
196 my $infile = $$args{'path'};
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
197 if (! $infile) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
198 logger("ABORT", "no input file given!");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
199 exit 1;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
200 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
201 # strip double slashes
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
202 $infile =~ s/\/\//\//;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
203 if (! -f $infile) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
204 logger("ABORT", "input file \'$infile\' doesn't exist!");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
205 exit 1;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
206 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
207
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
208
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
209 #######################################################
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
210 # subroutines
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
211 #
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
212
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
213
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
214 sub find_arch_dir {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
215 my ($input_node) = @_;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
216 my $dir = "";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
217
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
218 my $bib_id = $input_node->findvalue("fm:$arch_id_field");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
219 #logger('DEBUG', "bibdir: $bib_dir");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
220 if ($bib_id) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
221 $dir = "$lib_arch_dir/lit$bib_id";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
222 if (-d $dir) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
223 logger('DEBUG', "directory $dir exists");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
224 return $dir;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
225 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
226 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
227 return;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
228 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
229
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
230 sub find_permanent_dir {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
231 my ($input_node) = @_;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
232 my $online_base = '/mpiwg/online/permanent';
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
233 my $dest_id = sstrip($input_node->findvalue("fm:$arch_id_field"));
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
234 if (! $dest_id) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
235 logger('ERROR', "no ID field for online permanent entry");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
236 $errcnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
237 return;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
238 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
239 my $dir = "$online_base/lit$dest_id";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
240 return $dir;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
241 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
242
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
243
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
244 sub convert_bib {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
245 my ($input_node, $index_root, $index_doc) = @_;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
246 my $cnt = 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
247 my $type = "";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
248 my $type_path = "";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
249
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
250 # process general stuff first
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
251 foreach my $n ($input_node->getChildNodes()) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
252 my $name = $n->nodeName();
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
253 my $val = $n->textContent();
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
254 #logger('DEBUG', " NODE: $name = '$val'");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
255 if (exists $gen_map{$name}) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
256 # is a general field
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
257 if ($name eq $lang_field) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
258 # language field
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
259 if (not $val) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
260 logger('WARNING', "no language tag");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
261 $warncnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
262 next;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
263 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
264 # convert to iso code
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
265 if (exists $lang_map{$val}) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
266 $val = $lang_map{$val};
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
267 } else {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
268 logger('ERROR', "unknown language: $val! skipping...");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
269 $errcnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
270 return 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
271 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
272 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
273 create_element_path($gen_map{$name}, $index_root, $namespace)
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
274 ->appendTextNode($val);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
275 $cnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
276 } elsif (exists $type_map{$name}) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
277 # is a type field
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
278 $type_path = $type_map{$name};
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
279 $type = $val;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
280 # check with known types
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
281 if (exists $subtype_map{$val}) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
282 my $indextype = $subtype_map{$val}->{'_name'};
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
283 create_element_path("$type_path=$indextype", $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
284 $cnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
285 } else {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
286 logger('ERROR', "unknown bib type $val! skipping...");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
287 $errcnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
288 return 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
289 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
290 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
291 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
292 # process sub type fields
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
293 if ($type) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
294 foreach my $n ($input_node->getChildNodes()) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
295 my $name = $n->nodeName();
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
296 my $val = $n->textContent();
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
297 #logger('DEBUG', " NODE: $name = '$val'");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
298 if (exists $subtype_map{$type}->{$name}) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
299 create_element_path($subtype_map{$type}->{$name}, $index_root, $namespace)
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
300 ->appendTextNode($val);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
301 $cnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
302 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
303 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
304 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
305 return $cnt;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
306 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
307
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
308
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
309
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
310 sub process_all_fm_entries {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
311 my ($input_root) = @_;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
312 my $cnt = 0;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
313
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
314 foreach my $n ($input_root->findnodes('fm:ROW')) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
315 logger('INFO', "processing entry $cnt ...");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
316 process_fm_entry($n);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
317 $cnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
318 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
319 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
320
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
321
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
322 sub process_fm_entry {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
323 my ($input_node) = @_;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
324 my $index_doc = XML::LibXML::Document->createDocument('1.0', 'UTF-8');
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
325 my $index_root = $index_doc->createElementNS($namespace, 'resource');
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
326 $index_root->addChild($index_doc->createAttributeNS($namespace, 'version', '1.1'));
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
327 $index_root->addChild($index_doc->createAttributeNS($namespace, 'type', 'MPIWG'));
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
328 $index_doc->setDocumentElement($index_root);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
329
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
330 # try to find the document directory
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
331 my $doc_dir = "";
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
332 if ($online_mode) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
333 $doc_dir = find_permanent_dir($input_node);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
334 } elsif ($archive_mode) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
335 $doc_dir = find_arch_dir($input_node);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
336 } else {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
337 $doc_dir = find_permanent_dir($input_node);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
338 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
339 if (! $doc_dir) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
340 logger('ERROR', "document directory not found! skipping...");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
341 $errcnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
342 return;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
343 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
344
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
345 # check if index.meta exists
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
346 if ( -f "$doc_dir/index.meta") {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
347 if (not $do_replace) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
348 logger('DEBUG', "index file in $doc_dir exists");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
349 return;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
350 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
351 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
352
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
353 # add standard stuff to index.meta
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
354 my ($docname, $docpath) = split_file_path($doc_dir);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
355 # name and date
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
356 create_text_path('name', $docname, $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
357 create_text_path('archive-path', $doc_dir, $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
358 create_text_path('archive-creation-date', stime(time), $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
359 create_text_path('creator', 'vlp', $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
360 create_text_path('description', 'a scanned document', $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
361 if ($archive_mode) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
362 # acquisition
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
363 create_text_path('meta/acquisition/date', stime(time), $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
364 create_text_path('meta/acquisition/provider/provider-id', 'vlp', $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
365 create_text_path('meta/acquisition/provider/address', 'Max Planck Institute for the History of Science', $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
366 # image acquisition
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
367 create_text_path('meta/image-acquisition/device', 'Flatbed Scanner' , $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
368 create_text_path('meta/image-acquisition/image-type', 'Greyscale' , $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
369 create_text_path('meta/image-acquisition/production-comment', 'Raw scans in \'raw\' folder, cleaned pages in \'pages\' folder.' , $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
370 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
371 # media
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
372 create_text_path('media-type', 'image', $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
373 create_text_path('meta/content-type', 'scanned document', $index_root, $namespace);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
374
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
375 # convert bib entries
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
376 my $cnt = convert_bib($input_node, $index_root, $index_doc);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
377 if ($cnt == 0) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
378 # error or nothing to convert
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
379 logger('ERROR', "no bibliographic metadata!");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
380 $errcnt++;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
381 return;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
382 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
383
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
384 # write new index.meta file
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
385 if ($dry_run) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
386 logger('DEBUG', "would write $doc_dir/index.meta");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
387 logger('DEBUG', $index_doc->toString(1));
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
388 } else {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
389 write_xml($index_doc, "$doc_dir/index.meta");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
390 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
391
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
392 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
393
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
394
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
395
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
396
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
397
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
398 #######################################################
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
399 # Main
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
400 #
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
401
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
402 # load filemaker xml dump
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
403 my ($input_doc, $input_root) = read_xml($infile);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
404 # set namespace prefix
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
405 my $fm_namespace = $input_root->namespaceURI();
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
406 $input_root->setNamespace($fm_namespace, 'fm', 1);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
407
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
408
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
409 process_all_fm_entries($input_root);
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
410
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
411
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
412 logger("INFO", "$warncnt warnings");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
413 logger("INFO", "$errcnt errors");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
414 if ($errcnt > 0) {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
415 logger("ABORT", "there were errors!");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
416 exit 1;
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
417 } else {
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
418 logger("DONE", "done something successfully!");
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
419 }
c8e4e8cb31dd new tool for createing index files for vlp documents
casties
parents:
diff changeset
420