Changeset 3979


Ignore:
Timestamp:
2003-03-25T10:35:22+12:00 (21 years ago)
Author:
kjdon
Message:

now creates coll config file too

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/bin/script/convert_coll_from_gs2.pl

    r3947 r3979  
    3030sub main {
    3131
     32    my $defaultlang = 'en';
    3233    my ($collectdir);
    3334    # note that no defaults are passed for most options as they're set
     
    6162   
    6263
    63     $buildconfigfilename = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "building", "build.cfg");
     64    $buildconfigfilename = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "index", "build.cfg");
    6465    my $buildcfg;
    6566    if (-e $buildconfigfilename) {
     
    6869    }
    6970
    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) {
    7280    print STDOUT "buildConfig file already exists! overwriting it!\n";
    7381   
     
    8189    }
    8290
    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   
    88127#num docs
    89128    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');
    95134   
    96135   
     
    115154   
    116155   
    117     $writer->startTag('serviceRackList');
     156    $buildwriter->startTag('serviceRackList');
    118157   
    119158    my @levels = ('Document');
     
    132171    }
    133172
    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');
    137176    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);
    146185   
    147186    }
     
    171210        }
    172211        if (not $started_classifiers) {
    173         $writer->startTag('classifierList');
     212        $buildwriter->startTag('classifierList');
    174213        $started_classifiers = 1;
    175214        }
     
    184223        }
    185224       
    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);
    187226       
    188227    } #foreach classifier
    189228    if ($started_classifiers) {
    190229        # end the classifiers
    191         $writer->endTag('classifierList');
     230        $buildwriter->endTag('classifierList');
    192231    }
    193232   
    194233    }
    195234    # close off the Retrieve service
    196     $writer->endTag('serviceRack');
     235    $buildwriter->endTag('serviceRack');
    197236   
    198237    # the phind classifier is a separate service
    199238    if ($phind) {
    200239    # if phind classifier
    201     $writer->emptyTag('serviceRack', 'name'=>'PhindPhraseBrowse');
     240    $buildwriter->emptyTag('serviceRack', 'name'=>'PhindPhraseBrowse');
    202241    }
    203242   
     
    205244    if ($buildtype eq 'mgpp') {
    206245       
    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');
    210249    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');
    214253   
    215254    #fieldlist
     
    224263        }
    225264       
    226         $writer->startTag('fieldList');
     265        $buildwriter->startTag('fieldList');
    227266        foreach $f (keys %$fieldmap) {
    228267        $field = $fieldmap->{$f};
    229         $writer->emptyTag('field', 'shortname'=>$field, 'name'=>$f);
     268        $buildwriter->emptyTag('field', 'shortname'=>$field, 'name'=>$f);
    230269        }   
    231         $writer->endTag('fieldList');
     270        $buildwriter->endTag('fieldList');
    232271    } else {
    233272        print STDERR "indexfieldmap not defined";
     
    235274   
    236275    } 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');
    243282    #for each index
    244283    foreach $i (keys %$indexmap) {
    245284    $index = $indexmap->{$i};
    246     $writer->emptyTag('index', 'name'=>$index);
     285    $buildwriter->emptyTag('index', 'name'=>$index);
    247286    }   
    248     $writer->endTag('indexList');
    249    
    250     $writer->endTag('serviceRack');
     287    $buildwriter->endTag('indexList');
     288   
     289    $buildwriter->endTag('serviceRack');
    251290   
    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
     300sub 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');
    257320}
    258321
Note: See TracChangeset for help on using the changeset viewer.