Changeset 4969


Ignore:
Timestamp:
2003-07-17T12:10:26+12:00 (21 years ago)
Author:
kjdon
Message:

no longer use activate script - only use convert script. building starts off with only gs2 style config files, then the conversion to gs3 is done after

Location:
trunk/gsdl3/bin/script
Files:
1 deleted
2 edited

Legend:

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

    r4888 r4969  
    2020   
    2121    print STDOUT "   -collectdir         Directory where collection lives.\n";
    22     print STDOUT "   -verbosity          Controls the amount of output.\n\n";
     22    print STDOUT "   -verbosity          Controls the amount of output.\n";
     23    print STDOUT "   -defaultlang        The language that is considered the default (for display text etc). defaults to 'en'\n\n";
    2324}
    2425
    2526sub main {
    2627
    27     my $defaultlang = 'en';
    28     my ($collectdir);
     28    my ($defaultlang, $verbosity, $collectdir);
    2929    # note that no defaults are passed for most options as they're set
    3030    # later (after we check the collect.cfg file)
    31     if (!parsargv::parse(\@ARGV,
    32              'verbosity/\d+/', \$verbosity,
    33              'collectdir/.*/', \$collectdir)) {
     31    if (!&parsargv::parse(\@ARGV,
     32              'verbosity/\d+/', \$verbosity,
     33              'collectdir/.*/', \$collectdir,
     34              'defaultlang/.*/', \$defaultlang)) {
    3435    &print_usage();
    3536    die "\n";
     
    3738
    3839    # get and check the collection name
    39     if (($collection = &util::use_collection(@ARGV, $collectdir)) eq "") {
    40     &print_usage();
    41     die "\n";
    42     }
    43    
    44     $collconfigfilename = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "etc", "collect.cfg");
     40    my ($collection) = @ARGV;
     41    if (!defined($collection) || $collection eq "") {
     42    die "No collection specified\n";
     43    }
     44    if ($collection eq "gs2model") {
     45    die "You cant convert the model collection\n";
     46    }
     47   
     48    if (!defined $collectdir || $collectdir eq "") {
     49    $collectdir = &util::filename_cat ($ENV{'GSDLHOME'}, "collect");
     50    }
     51
     52    if (!defined $defaultlang || $defaultlang eq "") {
     53    $defaultlang = 'en';
     54    }
     55    # add on the coll name
     56    $collectdir = &util::filename_cat ($collectdir, $collection);
     57   
     58    $collconfigfilename = &util::filename_cat ($collectdir, "etc", "collect.cfg");
     59    print STDOUT "coll config=$collconfigfilename\n";
    4560    my $collectcfg;
    4661    if (-e $collconfigfilename) {
     
    5368   
    5469
    55     $buildconfigfilename = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "index", "build.cfg");
     70    $buildconfigfilename = &util::filename_cat ($collectdir, "index", "build.cfg");
    5671    my $buildcfg;
    5772    if (-e $buildconfigfilename) {
     
    6580
    6681     
    67     my $colloutfile = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "etc", "collectionConfig.xml");
     82    my $colloutfile = &util::filename_cat ($collectdir, "etc", "collectionConfig.xml");
    6883    if (-e $colloutfile) {
    6984    print STDOUT "collectionConfig file already exists! overwriting it!\n";
     
    7186    }
    7287   
    73     my $buildoutfile = &util::filename_cat ($ENV{'GSDLCOLLECTDIR'}, "index", "buildConfig.xml");
     88    my $buildoutfile = &util::filename_cat ($collectdir, "index", "buildConfig.xml");
    7489    if (-e $buildoutfile) {
    7590    print STDOUT "buildConfig file already exists! overwriting it!\n";
     
    92107    my $collwriter = new XML::Writer(OUTPUT => $colloutput, NEWLINES => 1);
    93108   
    94     $collwriter->startTag('collectionConfig', 'xmlns:gsf'=>"http://www.greenstone.org/configformat");
     109    $collwriter->startTag('collectionConfig', 'xmlns:gsf'=>"http://www.greenstone.org/configformat", 'xmlns:xsl'=>'http://www.w3.org/1999/XSL/Transform');
    95110   
    96111    #output the collection metadata to the collectionConfig file
     112    $collwriter->startTag('metadataList');
     113   
     114    my $creator = $collectcfg->{'creator'};
     115    &output_metadata($collwriter, 'creator', $creator);
     116    $collwriter->endTag('metadataList');
     117
     118    #output the display collectionmeta to collectionConfig.xml
     119   
    97120    my $collectionmeta = $collectcfg->{'collectionmeta'};
    98     $collwriter->startTag('metadataList');
    99    
    100     %name_map = (
    101          'collectionname', 'colName',
    102          'collectionextra', 'colDescription',
    103          'iconcollection', 'colIcon',
    104          'iconcollectionsmall', 'colIconSmall');
    105    
    106121    if (defined $collectionmeta) {
     122    %name_map = ('collectionname', 'name',
     123             'collectionextra', 'description',
     124             'iconcollection', 'icon',
     125             'iconcollectionsmall', 'smallicon');
     126   
     127    $collwriter->startTag('displayItemList');
    107128    foreach $entry ( keys %$collectionmeta) {
    108129        if (defined $name_map{$entry}) {
     
    113134            $value = format_icon_value($value);
    114135            }
    115             outputmetadata($collwriter, $name, $lang, $value);
    116         }
    117         }
    118     }
     136            &output_display($collwriter, $name, $lang, $value);
     137        }
     138        }
     139    }
     140    $collwriter->endTag('displayItemList');
    119141    }
    120     $collwriter->endTag('metadataList');
    121    
    122    # output building metadata to build config file
     142   
     143    # output building metadata to build config file
    123144    my $numdocs = $buildcfg->{'numdocs'};
    124145    $buildwriter->startTag('metadataList');
    125     $buildwriter->startTag('metadata',  'name'=>'numDocs');
    126     $buildwriter->characters($numdocs);
    127     $buildwriter->endTag('metadata');
     146    &output_metadata($buildwriter, 'numDocs', $numdocs);
    128147    $buildwriter->endTag('metadataList');
    129148   
     
    167186
    168187    #output the search stuff to coll cfg
    169     $collwriter->startTag('search', 'type'=>$buildtype);
     188    $collwriter->startTag('search');
    170189    foreach $i (keys %$indexmap) {
    171190    $shortname = $indexmap->{$i};
    172     if ($buildtype eq 'mgpp') {
    173         $collwriter->startTag('index', 'name'=>$shortname);
    174     } elsif ($buildtype eq 'mg') {
    175         $collwriter->startTag('index', 'name'=>$shortname);
    176     }
     191    $collwriter->startTag('index', 'name'=>$shortname);
    177192    #find the coll meta stuff
    178193    $indexdisplay = ".$i";
    179194    foreach $lang (keys %{$collectionmeta->{$indexdisplay}}) {
    180195        $value = $collectionmeta->{$indexdisplay}->{$lang};
    181         output_display($collwriter, $lang, $value);
     196        output_display($collwriter, 'name', $lang, $value);
    182197    }
    183198    $collwriter->endTag('index');
     
    187202    # add in the format stuff
    188203    if (defined $format->{'SearchVList'}) {
    189 
     204   
    190205    $collwriter->startTag('format');
    191206    write_format($collwriter, $format->{'SearchVList'});
     
    199214    my @levels = ();
    200215    my $defaultlevel;
    201 
     216   
    202217    #do the retrieve service
    203218    # assume mgpp or mg
     
    207222        push @levels, @{$buildcfg->{'indexlevels'}};
    208223       
    209         $defaultlevel = $levels[0]; # the first one
    210224        if (defined $buildcfg->{'textlevel'}) {
    211         $textlevel = $buildcfg->{'textlevel'};
     225        $defaultlevel = $buildcfg->{'textlevel'};
    212226        } else {
    213         $textlevel = $defaultlevel;
    214         }
    215     } else {
     227        $defaultlevel = $levels[0];
     228        }
     229    } else { #use levels from collet.cfg - must be an old collection
    216230        # should be there, but take a guess
    217         @levels = ('Doc');
    218         $defaultlevel = 'Doc';
    219         $textlevel = 'Doc';
     231        @levels = ('Document');
     232        $defaultlevel = 'Document';
     233        if (defined $collectcfg->{'levels'}) {
     234        foreach $l (@{$collectcfg->{'levels'}}) {
     235            if ($l eq "Section") {
     236            $defaultlevel = 'Section';
     237            }
     238            push @levels, $l;
     239        }
     240        }
    220241    }
    221242   
    222243    $buildwriter->startTag('serviceRack', 'name'=>'GS2MGPPRetrieve');
    223     $buildwriter->emptyTag('defaultLevel', 'name'=>$textlevel);
     244    $buildwriter->emptyTag('defaultLevel', 'name'=>$defaultlevel);
    224245
    225246   
     
    248269        }
    249270       
    250         my $nodelinks = 0;
    251271        my $horizontalAtTop = "false";
    252272        if ($classname eq "AZList" || $classname eq "AZCompactList") { #there may be others
    253273        $horizontalAtTop = "true";
    254         $nodelinks = 1;
    255274        }
    256275        if (not $started_classifiers) {
     
    258277        $started_classifiers = 1;
    259278        }
    260         my $content = ''; #use buttonnmae first, then metadata
     279        my $content = ''; #use buttonname first, then metadata
    261280        if ($classname eq "DateList") {
    262281        $content = "Date";
     
    287306        $dlist = "DateList";
    288307        }
    289         if ($nodelinks || defined $format->{$vlist} || defined $format->{$hlist} || defined $format->{$dlist}) {
     308        if (defined $format->{$vlist} || defined $format->{$hlist} || defined $format->{$dlist}) {
    290309        $collwriter->startTag('format');
    291         if ($nodelinks) {
    292             write_nodelinks_format($collwriter);
    293         }
    294        
    295310        if (defined $format->{$vlist}) {
    296311            write_format($collwriter, $format->{$vlist});
     
    305320        }
    306321        $collwriter->endTag('classifier');
    307         } #foreach classifier
     322    } #foreach classifier
    308323    if ($started_classifiers) {
    309324        # end the classifiers
     
    326341       
    327342    $buildwriter->startTag('serviceRack', 'name'=>'GS2MGPPSearch');
    328     $buildwriter->emptyTag('defaultLevel', 'name'=>$textlevel);
     343    $buildwriter->emptyTag('defaultLevel', 'name'=>$defaultlevel);
    329344    $buildwriter->startTag('levelList');
    330345    foreach $level (@levels) {
     
    370385   
    371386    $buildwriter->endTag('serviceRack');
    372    
     387    
    373388    $buildwriter->endTag('serviceRackList');
    374389    $buildwriter->endTag('buildConfig');
    375390    $collwriter->endTag('collectionConfig');
     391    $collwriter->end();
    376392    $buildwriter->end();
    377393    $buildoutput->close();
     
    380396
    381397
    382 sub outputmetadata {
    383     my ($writer, $metaname, $lang, $metavalue) = @_;
     398sub output_metadata {
     399    my ($writer, $metaname,  $metavalue) = @_;
     400    $writer->startTag('metadata',  'name'=>$metaname);
     401    $writer->characters($metavalue);
     402    $writer->endTag('metadata');
     403}
     404
     405sub output_display {
     406    my ($writer, $name, $lang, $value) = @_;
    384407    $lang = 'en' if $lang eq 'default';
    385408    if ($lang =~ /^\[/) {
    386409    ($lang) = $lang =~ /\[l=(.*)\]/;
    387410    }
    388     $writer->startTag('metadata',  'name'=>$metaname, 'lang'=>$lang);
    389     $writer->characters($metavalue);
    390     $writer->endTag('metadata');
    391 }
    392 
    393 sub output_display {
    394     my ($writer, $lang, $value) = @_;
    395     $lang = 'en' if $lang eq 'default';
    396     if ($lang =~ /^\[/) {
    397     ($lang) = $lang =~ /\[l=(.*)\]/;
    398     }
    399     $writer->startTag('displayName', 'lang'=>$lang);
     411    $writer->startTag('displayItem', 'name'=>$name, 'lang'=>$lang);
    400412    $writer->characters($value);
    401     $writer->endTag('displayName');
     413    $writer->endTag('displayItem');
    402414}
    403415sub format_icon_value {
     
    428440    $old_format =~ s/\[srcicon\]/\<gsf:icon type=\'source\'\/\>/g;
    429441
    430     #now do the rest of the {} which are assumed to be metadata
     442    #now do the rest of the [] which are assumed to be metadata
    431443    $old_format =~ s/\[([^\]]*\:)?([^\]\:]*)\]/\<gsf:metadata name=\'$2\' select=\'$1\'\/\>/g;
    432444    #do the parent stuff
     
    452464}
    453465
    454 
    455 sub write_nodelinks_format {
    456    
    457     my ($writer) = @_;
    458    
    459     $writer->startTag('gsf:template', 'match'=>'classifierNode');
    460     $writer->startTag('td');
    461     $writer->startTag('gsf:link', 'type'=>'classifier');
    462     $writer->emptyTag('gsf:metadata', 'name'=>'Title');
    463     $writer->endTag('gsf:link');
    464     $writer->endTag('td');
    465     $writer->endTag('gsf:template');
    466    
    467 }
    468466#$writer->startTag('');
    469467#$writer->endTag('');
  • trunk/gsdl3/bin/script/gs2_mkcol.pl

    r4884 r4969  
    246246    # get the strings to include.
    247247    $pluginstring = "";
    248     $xmlpluginstring = "";
    249248    foreach $plugin (@plugin) {
    250249    if ($plugin eq RecPlug) {
    251250        $pluginstring .= "plugin         $plugin -use_metadata_files\n";
    252         $xmlpluginstring .= "<plugin name='$plugin'><option name='use_metadata_files'/></plugin>\n";
    253251    } else {
    254252        $pluginstring .= "plugin         $plugin\n";
    255         $xmlpluginstring .= "<plugin name='$plugin'/>\n";
    256253    }
    257254    }
     
    284281    $defaultindex = "defaultindex document:text";
    285282    $indexmeta = "collectionmeta .document:text    \"text\"\ncollectionmeta .document:Title  \"titles\"\ncollectionmeta .document:Source  \"filenames\"\n";
    286 
    287     $xmlindexes = "<index name='dtx'><displayName lang='en'>text</displayName></index>\n<index name='dtt'><displayName lang='en'>titles</displayName></index>\n<index name='dsr'><displayName lang='en'>filenames</displayName></index>";
    288283    } elsif ($buildtype eq "mgpp") {
    289284    $indexes = "allfields text metadata";
    290285    $defaultindex = "";
    291286    $indexmeta = "collectionmeta .text    \"text\"\ncollectionmeta .allfields \"entire documents\"\n";
    292     $xmlindexes = "<index name='idx'><displayName lang='en'>documents</displayName></index>";
    293287    } else {
    294288    print STDOUT "Error: buildtype should be mg or mgpp, but its $buildtype\n";
Note: See TracChangeset for help on using the changeset viewer.