Changeset 2772
- Timestamp:
- 2001-10-02T15:53:09+12:00 (23 years ago)
- Location:
- trunk/gsdl/perllib
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/cfgread.pm
r813 r2772 71 71 72 72 73 # stringexp, arrayexp, hashexp and arrayarrayexp73 # stringexp, arrayexp, hashexp,arrayarrayexp and hashhashexp 74 74 # should be something like '^(this|that)$' 75 75 sub read_cfg_file { 76 my ($filename, $stringexp, $arrayexp, $hashexp, $arrayarrayexp) = @_; 76 my ($filename, $stringexp, $arrayexp, $hashexp, $arrayarrayexp, 77 $hashhashexp) = @_; 77 78 my ($line); 78 79 my $data = {}; … … 98 99 push (@{$data->{$key}}, $line); 99 100 } 101 elsif (defined $hashhashexp && $key =~ /$hashhashexp/) { 102 my $k = shift @$line; 103 my $p = shift @$line; 104 my $v = shift @$line; 105 if (!defined $v) { 106 $v = $p; 107 $p = 'default'; 108 } 109 $data->{$key}->{$k}->{$p} = $v; 110 } 100 111 } 101 112 } 102 113 close (COLCFG); 114 103 115 } else { 104 116 print STDERR "cfgread::read_cfg_file couldn't read the cfg file $filename\n"; … … 112 124 # should be something like '^(this|that)$' 113 125 sub write_cfg_file { 114 my ($filename, $data, $stringexp, $arrayexp, $hashexp, $arrayarrayexp) = @_; 126 my ($filename, $data, $stringexp, $arrayexp, $hashexp, $arrayarrayexp, 127 $hashhashexp) = @_; 115 128 116 129 if (open (COLCFG, ">$filename")) { … … 128 141 &write_cfg_line ('COLCFG', [$key, @$k]); 129 142 } 143 } elsif ($key =~ /$hashhashexp/) { 144 foreach $k (keys (%{$data->{$key}})) { 145 foreach $p (keys (%{$data->{$key}->{$k}})) { 146 if ($p =~ /default/) { 147 &write_cfg_line ('COLCFG', 148 [$key, $k, $data->{$key}->{$k}]); 149 } 150 else { 151 &write_cfg_line ('COLCFG', 152 [$key, $k, $p, $data->{$key}->{$k}->{$p}]); 153 } 154 } 155 } 130 156 } 131 157 } -
trunk/gsdl/perllib/colcfg.pm
r2711 r2772 55 55 56 56 # {'subcollection'}->hash of key-value pairs 57 # {'collectionmeta'}->hash of key-value pairs58 57 59 58 # {'plugin'}->array of arrays of strings 60 59 # {'classify'}->array of arrays of strings 60 61 # {'collectionmeta'}->hash of key->hash of param-value -used 62 # for language specification 63 # for example, collectionmeta->collectionname->default->demo 64 # ->mi->maori demo 61 65 62 66 sub read_collect_cfg { … … 71 75 q/(maintainer|languages|indexsubcollections|/ . 72 76 q/indexes|dontbuild|dontgdbm|mirror|phind|levels)$/, 73 q/^(subcollection|collectionmeta)$/, 74 q/^(plugin|classify)$/); 77 q/^(subcollection)$/, 78 q/^(plugin|classify)$/, 79 q/^(collectionmeta)$/); 75 80 } 76 81 … … 84 89 q/^(maintainer|languages|indexsubcollections|/ . 85 90 q/indexes|dontbuild|dontgdbm|levels)$/, 86 q/^(subcollection|collectionmeta)$/, 87 q/^(plugin|classify)$/); 91 q/^(subcollection)$/, 92 q/^(plugin|classify)$/, 93 q/^(collectionmeta)$/); 88 94 } 89 95 … … 120 126 121 127 1; 128 -
trunk/gsdl/perllib/mgbuilder.pm
r2506 r2772 668 668 if (defined $self->{'collect_cfg'}->{'collectionmeta'}) { 669 669 670 670 if (!defined $self->{'index_mapping'}) { 671 671 $self->{'index_mapping'} = 672 672 $self->create_index_mapping ($self->{'collect_cfg'}->{'indexes'}); 673 673 } 674 674 675 675 print $handle "[collection]\n"; 676 676 677 677 foreach $cmeta (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}})) { 678 my $defaultfound=0; 679 my $first=1; 680 my $metadata_entry = ""; 681 my $default=""; 682 my $cmetamap = ""; 678 683 if ($cmeta =~ s/^\.//) { 679 if (defined $self->{'index_mapping'}->{$cmeta}) {680 print $handle "<$self->{'index_mapping'}->{$cmeta}>" .681 $self->{'collect_cfg'}->{'collectionmeta'}->{".$cmeta"} . "\n";682 } 684 if (defined $self->{'index_mapping'}->{$cmeta}) { 685 $cmetamap = $self->{'index_mapping'}->{$cmeta}; 686 $cmeta = ".$cmeta"; 687 } 683 688 else { 684 689 print $outhandle "mgbuilder: warning bad collectionmeta option '$cmeta' - ignored\n"; 690 next; #ignore this one 685 691 } 686 } else { 687 print $handle "<$cmeta>$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}\n"; 688 } 689 } 692 } 693 else { 694 $cmetamap = $cmeta; # just using the same name 695 } 696 #iterate through the languages 697 foreach $lang (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}})) { 698 if ($first) { 699 $first=0; 700 #set the default default to the first entry 701 $default=$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang}; 702 } 703 if ($lang =~ /default/) { 704 $defaultfound=1; 705 #the default entry goes first 706 $metadata_entry = "<$cmetamap>" . 707 $self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{'default'} . "\n" . $metadata_entry; 708 } 709 else { 710 my ($l) = $lang =~ /^\[l=(\w*)\]$/; 711 if ($l) { 712 $metadata_entry .= "<$cmetamap:$l>" . 713 $self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang} . "\n"; 714 } 715 } 716 } 717 #if we haven't found a default, put one in 718 if (!$defaultfound) { 719 $metadata_entry = "<$cmetamap>$default\n" . $metadata_entry; 720 } 721 #write the entry to the file 722 print $handle $metadata_entry; 723 724 } 725 690 726 print $handle "\n" . ('-' x 70) . "\n"; 691 727 692 728 } 693 729 -
trunk/gsdl/perllib/mgppbuilder.pm
r2700 r2772 678 678 # delete it! 679 679 print $outhandle "deleting $file\n" if $self->{'verbosity'} > 2; 680 &util::rm (&util::filename_cat ($tmpdir, $file));680 #&util::rm (&util::filename_cat ($tmpdir, $file)); 681 681 } 682 682 } … … 759 759 $self->create_index_mapping ($self->{'collect_cfg'}->{'indexes'}); 760 760 } 761 761 762 762 print $handle "[collection]\n"; 763 763 764 764 foreach $cmeta (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}})) { 765 my $defaultfound=0; 766 my $first=1; 767 my $metadata_entry = ""; 768 my $default=""; 769 my $cmetamap = ""; 765 770 if ($cmeta =~ s/^\.//) { 766 771 if (defined $self->{'index_mapping'}->{$cmeta}) { 767 print $handle "<$self->{'index_mapping'}->{$cmeta}>" . 768 $self->{'collect_cfg'}->{'collectionmeta'}->{".$cmeta"} . "\n"; 769 } else { 770 print $outhandle "mgppbuilder: warning bad collectionmeta option '$cmeta' - ignored\n"; 772 $cmetamap = $self->{'index_mapping'}->{$cmeta}; 773 $cmeta = ".$cmeta"; 771 774 } 772 } else { 773 print $handle "<$cmeta>$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}\n"; 774 } 775 } 776 #print out the indexfield mapping 777 foreach $field (keys %{$self->{'buildproc'}->{'indexfields'}}) { 778 $shortname = $self->{'buildproc'}->{'indexfieldmap'}->{$field}; 779 print $handle "<$shortname>$field\n" if defined $shortname; 780 } 775 else { 776 print $outhandle "mgbuilder: warning bad collectionmeta option '$cmeta' - ignored\n"; 777 next; #ignore this one 778 } 779 } 780 else { 781 $cmetamap = $cmeta; # just using the same name 782 } 783 #iterate through the languages 784 foreach $lang (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}})) { 785 if ($first) { 786 $first=0; 787 #set the default default to the first entry 788 $default=$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang}; 789 } 790 if ($lang =~ /default/) { 791 $defaultfound=1; 792 #the default entry goes first 793 $metadata_entry = "<$cmetamap>" . 794 $self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{'default'} . "\n" . $metadata_entry; 795 } 796 else { 797 my ($l) = $lang =~ /^\[l=(\w*)\]$/; 798 if ($l) { 799 $metadata_entry .= "<$cmetamap:$l>" . 800 $self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang} . "\n"; 801 } 802 } 803 } 804 #if we haven't found a default, put one in 805 if (!$defaultfound) { 806 $metadata_entry = "<$cmetamap>$default\n" . $metadata_entry; 807 } 808 #write the entry to the file 809 print $handle $metadata_entry; 810 811 } 812 781 813 print $handle "\n" . ('-' x 70) . "\n"; 782 783 } 784 814 815 } 816 785 817 &plugin::read ($self->{'pluginfo'}, $self->{'source_dir'}, 786 818 "", {}, $self->{'buildproc'}, $self->{'maxdocs'}); … … 790 822 $self->{'allclassifications'}); 791 823 824 #output doclist 825 my @doclist = $self->{'buildproc'}->get_doc_list(); 826 my $docs = join (";",@doclist); 827 print $handle "[browselist]\n"; 828 print $handle "<hastxt>0\n"; 829 print $handle "<childtype>VList\n"; 830 print $handle "<numleafdocs>" . ($#doclist+1) . "\n"; 831 print $handle "<thistype>Invisible\n"; 832 print $handle "<contains>$docs"; 833 print $handle "\n" . ('-' x 70) . "\n"; 792 834 close ($handle) if !$self->{'debug'}; 835 793 836 } 794 837
Note:
See TracChangeset
for help on using the changeset viewer.