Changeset 3979
- Timestamp:
- 2003-03-25T10:35:22+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/bin/script/convert_coll_from_gs2.pl
r3947 r3979 30 30 sub main { 31 31 32 my $defaultlang = 'en'; 32 33 my ($collectdir); 33 34 # note that no defaults are passed for most options as they're set … … 61 62 62 63 63 $buildconfigfilename = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, " building", "build.cfg");64 $buildconfigfilename = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "index", "build.cfg"); 64 65 my $buildcfg; 65 66 if (-e $buildconfigfilename) { … … 68 69 } 69 70 70 my $outfile = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "building", "buildConfig.xml"); 71 if (-e $outfile) { 71 72 my $colloutfile = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "etc", "collectionConfig.xml"); 73 if (-e $colloutfile) { 74 print STDOUT "collectionConfig file already exists! overwriting it!\n"; 75 76 } 77 78 my $buildoutfile = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "index", "buildConfig.xml"); 79 if (-e $buildoutfile) { 72 80 print STDOUT "buildConfig file already exists! overwriting it!\n"; 73 81 … … 81 89 } 82 90 83 my $output = new IO::File(">$outfile"); 84 my $writer = new XML::Writer(OUTPUT => $output); 85 86 $writer->startTag('buildConfig'); 87 91 my $buildoutput = new IO::File(">$buildoutfile"); 92 my $buildwriter = new XML::Writer(OUTPUT => $buildoutput); 93 94 $buildwriter->startTag('buildConfig'); 95 96 my $colloutput = new IO::File(">$colloutfile"); 97 my $collwriter = new XML::Writer(OUTPUT => $colloutput); 98 99 $collwriter->startTag('collectionConfig'); 100 101 #output the collection metadata to the collectionConfig file 102 my $collectionmeta = $collectcfg->{'collectionmeta'}; 103 $collwriter->startTag('metadataList'); 104 105 %name_map = ( 106 'collectionname', 'colName', 107 'collectionextra', 'colDescription', 108 'iconcollection', 'colIcon', 109 'iconcollectionsmall', 'colIconSmall'); 110 111 if (defined $collectionmeta) { 112 print STDOUT "coll meta defined \n"; 113 foreach $entry ( keys %$collectionmeta) { 114 print STDOUT "entry=$entry\n"; 115 if (defined $name_map{$entry}) { 116 $name= $name_map{$entry}; 117 print STDOUT "name=$name\n"; 118 foreach $lang (keys %{$collectionmeta->{$entry}}) { 119 print STDOUT "lang=$lang\n"; 120 outputmetadata($collwriter, $name, $lang, $collectionmeta->{$entry}->{$lang}); 121 } 122 } 123 } 124 } 125 $collwriter->endTag('metadataList'); 126 88 127 #num docs 89 128 my $numdocs = $buildcfg->{'numdocs'}; 90 $ writer->startTag('metadataList');91 $ writer->startTag('metadata', 'name'=>'numDocs');92 $ writer->characters($numdocs);93 $ writer->endTag('metadata');94 $ writer->endTag('metadataList');129 $buildwriter->startTag('metadataList'); 130 $buildwriter->startTag('metadata', 'name'=>'numDocs'); 131 $buildwriter->characters($numdocs); 132 $buildwriter->endTag('metadata'); 133 $buildwriter->endTag('metadataList'); 95 134 96 135 … … 115 154 116 155 117 $ writer->startTag('serviceRackList');156 $buildwriter->startTag('serviceRackList'); 118 157 119 158 my @levels = ('Document'); … … 132 171 } 133 172 134 $ writer->startTag('serviceRack', 'name'=>'GS2MGPPRetrieve');135 $ writer->emptyTag('defaultLevel', 'name'=>$defaultlevel);136 $ writer->startTag('levelList');173 $buildwriter->startTag('serviceRack', 'name'=>'GS2MGPPRetrieve'); 174 $buildwriter->emptyTag('defaultLevel', 'name'=>$defaultlevel); 175 $buildwriter->startTag('levelList'); 137 176 foreach $level (@levels) { 138 $ writer->emptyTag('level', 'name'=>$level);139 } 140 $ writer->endTag('levelList');141 142 143 } else { 144 $ writer->startTag('serviceRack', 'name'=>'GS2MGRetrieve');145 $ writer->emptyTag('defaultIndex', 'name'=>$defaultindex);177 $buildwriter->emptyTag('level', 'name'=>$level); 178 } 179 $buildwriter->endTag('levelList'); 180 181 182 } else { 183 $buildwriter->startTag('serviceRack', 'name'=>'GS2MGRetrieve'); 184 $buildwriter->emptyTag('defaultIndex', 'name'=>$defaultindex); 146 185 147 186 } … … 171 210 } 172 211 if (not $started_classifiers) { 173 $ writer->startTag('classifierList');212 $buildwriter->startTag('classifierList'); 174 213 $started_classifiers = 1; 175 214 } … … 184 223 } 185 224 186 $ writer->emptyTag('classifier', 'name'=>$name, 'content'=>$content, 'orientation'=>$orientation, 'documentInterleave'=>$document_interleave);225 $buildwriter->emptyTag('classifier', 'name'=>$name, 'content'=>$content, 'orientation'=>$orientation, 'documentInterleave'=>$document_interleave); 187 226 188 227 } #foreach classifier 189 228 if ($started_classifiers) { 190 229 # end the classifiers 191 $ writer->endTag('classifierList');230 $buildwriter->endTag('classifierList'); 192 231 } 193 232 194 233 } 195 234 # close off the Retrieve service 196 $ writer->endTag('serviceRack');235 $buildwriter->endTag('serviceRack'); 197 236 198 237 # the phind classifier is a separate service 199 238 if ($phind) { 200 239 # if phind classifier 201 $ writer->emptyTag('serviceRack', 'name'=>'PhindPhraseBrowse');240 $buildwriter->emptyTag('serviceRack', 'name'=>'PhindPhraseBrowse'); 202 241 } 203 242 … … 205 244 if ($buildtype eq 'mgpp') { 206 245 207 $ writer->startTag('serviceRack', 'name'=>'GS2MGPPSearch');208 $ writer->emptyTag('defaultLevel', 'name'=>$defaultlevel);209 $ writer->startTag('levelList');246 $buildwriter->startTag('serviceRack', 'name'=>'GS2MGPPSearch'); 247 $buildwriter->emptyTag('defaultLevel', 'name'=>$defaultlevel); 248 $buildwriter->startTag('levelList'); 210 249 foreach $level (@levels) { 211 $ writer->emptyTag('level', 'name'=>$level);212 } 213 $ writer->endTag('levelList');250 $buildwriter->emptyTag('level', 'name'=>$level); 251 } 252 $buildwriter->endTag('levelList'); 214 253 215 254 #fieldlist … … 224 263 } 225 264 226 $ writer->startTag('fieldList');265 $buildwriter->startTag('fieldList'); 227 266 foreach $f (keys %$fieldmap) { 228 267 $field = $fieldmap->{$f}; 229 $ writer->emptyTag('field', 'shortname'=>$field, 'name'=>$f);268 $buildwriter->emptyTag('field', 'shortname'=>$field, 'name'=>$f); 230 269 } 231 $ writer->endTag('fieldList');270 $buildwriter->endTag('fieldList'); 232 271 } else { 233 272 print STDERR "indexfieldmap not defined"; … … 235 274 236 275 } elsif ($buildtype eq 'mg') { 237 $ writer->startTag('serviceRack', 'name'=>'GS2MGSearch');238 } 239 240 241 $ writer->emptyTag('defaultIndex', 'name'=>$defaultindex);242 $ writer->startTag('indexList');276 $buildwriter->startTag('serviceRack', 'name'=>'GS2MGSearch'); 277 } 278 279 280 $buildwriter->emptyTag('defaultIndex', 'name'=>$defaultindex); 281 $buildwriter->startTag('indexList'); 243 282 #for each index 244 283 foreach $i (keys %$indexmap) { 245 284 $index = $indexmap->{$i}; 246 $ writer->emptyTag('index', 'name'=>$index);285 $buildwriter->emptyTag('index', 'name'=>$index); 247 286 } 248 $ writer->endTag('indexList');249 250 $ writer->endTag('serviceRack');287 $buildwriter->endTag('indexList'); 288 289 $buildwriter->endTag('serviceRack'); 251 290 252 $writer->endTag('serviceRackList'); 253 $writer->endTag('buildConfig'); 254 $writer->end(); 255 $output->close(); 256 291 $buildwriter->endTag('serviceRackList'); 292 $buildwriter->endTag('buildConfig'); 293 $collwriter->endTag('collectionConfig'); 294 $buildwriter->end(); 295 $buildoutput->close(); 296 $colloutput->close(); 297 } 298 299 300 sub outputmetadata { 301 my ($collwriter, $metaname, $lang, $metavalue) = @_; 302 $lang = 'en' if $lang eq 'default'; 303 if ($lang =~ /^\[/) { 304 ($lang) = $lang =~ /\[l=(..)\]/; 305 print STDOUT "new lang = $lang\n"; 306 } 307 my $newvalue; 308 if ($name =~ /colIcon/) { 309 #may need to translate the value 310 ($newvalue) = $metavalue =~ /^_httpprefix_\/collect\/.*\/images\/(.*)$/; 311 ($newvalue) = $metavalue =~ /^_httpcollection_\/images\/(.*)$/ if not defined $newvalue; 312 $newvalue = $metavalue if not defined $newvalue; 313 print STDOUT "old value=$metavalue. new value = $newvalue\n"; 314 } else { 315 $newvalue = $metavalue; 316 } 317 $collwriter->startTag('metadata', 'name'=>$metaname, 'lang'=>$lang); 318 $collwriter->characters($newvalue); 319 $collwriter->endTag('metadata'); 257 320 } 258 321
Note:
See TracChangeset
for help on using the changeset viewer.